发现了一些类似的问题,但没有完全像这样......所以这里......
因此,当我将它粘贴到PHPMyAdmin SQL窗口时,此SQL语句可以正常工作,但当作为PHP mysql_query语句运行时,它返回零结果(无错误):
SELECT distinct action_detail2
FROM stats_tracking
WHERE date_entered >= '2013-05-08 00:00:00' AND
date_entered <= '2013-05-08 23:59:59' AND
action_detail1 != '10.0.0.1'
ORDER BY action_detail2
如果语法有问题,您会认为会出错。如您所见,我正在尝试从特定日期返回所有条目。这完全适用于PHPMyAdmin。只需在“mysql_query”调用中返回0结果。
以下是代码:
// Fix date entries
$fixFrom = explode("-", $_GET['from']);
$FROM = $fixFrom[2] . "-" . $fixFrom[0] . "-" . $fixFrom[1];
$fixTo = explode("-", $_GET['to']);
$TO = $fixTo[2] . "-" . $fixTo[0] . "-" . $fixTo[1];
// Build SQL statement
$SQL_Centers = "
SELECT distinct(action_detail2)
FROM stats_tracking
WHERE date_entered >= '" . $FROM . " 00:00:00' AND
date_entered <= '" . $TO . " 23:59:59' AND
action_detail1 != '10.0.0.1'
ORDER BY action_detail2
";
$resultCenters = mysql_query($SQL_Centers); // Run the actual query.
$dataCount_Centers=mysql_num_rows($resultCenters); // Get the count of rows, just in case we need it.
echo $dataCount_Centers;
这将返回0的计数.NO ERROR。稍后在代码中我将所有数据输出转换为JSON - 并且所有其他查询都有效。这也没有显示JSON记录。再次..没有错误。它们都在同一个数据库连接中运行..等等。很明显,这个语句导致没有返回任何记录。
我回复了SQL语句,然后从Firebug剪切并粘贴到这个问题。然后我将其粘贴到PHPMyAdmin SQL中 - 然后运行它。工作得很好。
感谢任何帮助。
由于
答案 0 :(得分:2)
只返回0会导致“mysql_query”调用。
这意味着您的查询中有错误。 0
是False
值。
因此,下一步是找出错误是什么。为此,请打印mysql_error()
的结果。
您还应该将代码从mysql_*
迁移到mysqli
或PDO
,因为旧的mysql_*
方法将从PHP中删除。有关详细信息,请参阅PHP手册中的this link。
答案 1 :(得分:0)
首先..我会说,请显示您的PHP代码,同时,您可以试试这个
SELECT distinct action_detail2 as "ACTION_DETAIL2"
FROM stats_tracking
WHERE date_entered >= '2013-05-08 00:00:00' AND
date_entered <= '2013-05-08 23:59:59' AND
action_detail1 != '10.0.0.1'
ORDER BY action_detail2
答案 2 :(得分:0)
我知道这已经有好几年了(mysqli现在是新的常态),但是我也遇到了类似的问题。如果我将其粘贴到phpmyadmin中,则查询有效,但不是从PHP脚本中进行。除了没有更新数据库外,我没有错误,也没有任何迹象表明这是错误的。因此,在手动删除并重建数据库表之后(ugh ...),事实证明我正在使用多行查询,这是标准mysqli_query不支持的。示例:
mysqli_multi_query($connection, "SET @x = 0; UPDATE table SET someValue = (@x=@x*2) WHERE someID = 4;");
如果您正在执行类似操作,请尝试使用mysqli_multi_query代替:
/app/wsgi.py
...现在看起来有些尴尬。 :)
希望这对以后的人有所帮助!