内部联接在PHP中不起作用,但是在phpMyAdmin SQL中起作用

比约恩·贝尔(Bjorn Behr)

我有一个MySql Query,它在PHP中没有返回正确的值,但是如果我在phpMyAdmin中运行相同的MySql Query,它将返回一个值。如果我在网络浏览器中显示选择,则会在其结尾显示“资源ID#27”。

PHP代码

$SQL_PhotoQueryList = "SELECT count(*) FROM `invoice_detail`".
                      " INNER JOIN `photos` ON invoice_detail.photo_id = photos.photo_id".
                      " INNER JOIN `invoice` ON invoice_detail.invoice_id = invoice.invoice_id".
                      " WHERE invoice.invoice_active = '$PassStatus' AND photos.user_id = '$SessionUserID'".
$SQL_PhotoResultList = mysql_query($SQL_PhotoQueryList);    
$ListPhotoCount      = mysql_result($SQL_PhotoResultList,0);
echo "SQL Query = $SQL_PhotoQueryList<br>";
echo "ListCount = $ListPhotoCount<br>";

屏幕输出

SQL Query = SELECT count(*) FROM `invoice_detail` INNER JOIN `photos` ON invoice_detail.photo_id = photos.photo_id INNER JOIN `invoice` ON invoice_detail.invoice_id = invoice.invoice_id WHERE invoice.invoice_active = '2' AND photos.user_id = '2'Resource id #27
ListCount = 0

代码调用例程($ SessionUserID是$ _SESSION变量)

   $PassStatus = "2"; // Active
   require("get_invoice.php");
   $InfoTotalSales = $ListGalleryCount;
托德·克里斯滕森

看来您有错字。

$SQL_PhotoQueryList = "SELECT count(*) FROM `invoice_detail`".
                      " INNER JOIN `photos` ON invoice_detail.photo_id = photos.photo_id".
                      " INNER JOIN `invoice` ON invoice_detail.invoice_id = invoice.invoice_id".
                      " WHERE invoice.invoice_active = '$PassStatus' AND photos.user_id = '$SessionUserID'".
$SQL_PhotoResultList = mysql_query($SQL_PhotoQueryList);    
$ListPhotoCount      = mysql_result($SQL_PhotoResultList,0);
echo "SQL Query = $SQL_PhotoQueryList<br>";
echo "ListCount = $ListPhotoCount<br>";

注意查询的最后一行的句号(实际上是串联运算符):

                      " WHERE invoice.invoice_active = '$PassStatus' AND photos.user_id = '$SessionUserID'".

这应该是一个分号。是的,我也做到了。有时最难发现的错误。

最后的资源ID来自mysql_query()的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章