查询未正确运行

时间:2014-04-08 19:35:54

标签: php mysql sql

我有一个sqlquery,我一直在我的php页面中玩,但它并没有提取出准确的结果!我已经出演这么久了,现在我看不出有什么不对劲!我相信只有一个"或者'或者`在错误的地方!

<? 
$result = mysql_query("SELECT ReReferral_ID FROM ReReferral Where (`ReReferral_Date` >= '" . $_POST["report_date_from"] ."-04-01 00:00:00' AND `ReReferral_Date` <= '" . $_POST["report_date_from"] ."-06-30 00:00:00') AND ReReferral_ReReferral ='1'");
$num_rows = mysql_num_rows($result);
echo $num_rows;
?>

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

试试这个:

 $rdate = mysql_real_escape_string($_POST["report_date_from"]);
 $result = mysql_query("SELECT ReReferral_ID FROM ReReferral 
          WHERE `ReReferral_Date` BETWEEN  CONCAT('$rdate','-04-01 00:00:00') 
          AND CONCAT('$rdate','-06-30 00:00:00') 
          AND ReReferral_ReReferral ='1' ");

答案 1 :(得分:1)

没有足够的信息来回答你的问题。

调试的一个步骤是验证您正在构造的字符串是您要执行的SQL语句。作为一个基本的例子:

$sqltext = "SELECT ReReferral_ID FROM ... ";

# for debugging echo out the SQL text to be executed:
echo $sqltext;

# also check the return from mysql_query
$result = mysql_query($sqltext) or die(mysql_error());

注意我正在抽搐使用已弃用的mysql_界面。对于这个世界中美丽 love ,不要使用mysql_进行新的开发。请改用mysqli或PDO。

如果必须在SQL文本中包含用户提供的数据(而不是使用绑定变量),那么至少使用mysql_real_escape_string函数来阻止SQL注入漏洞。