有什么理由不适用吗?
$events_query = "SELECT eventID, event_name, event_type, event_address, event_duration, event_date, event_time, event_description, num_attending
FROM events WHERE event_city = '$city' " .$type_query .$date_query .$time_query;
$events_list = mysql_query($events_query);
/* Where $type_query and $date_query are things like:
$type_query = "AND event_type = '$type' ";
*/
基本上上面的代码并没有给我预期的结果,所以我想知道我在PHP中使用它的方式是否存在问题。如果没有那么这意味着我有一个逻辑问题,我更喜欢,因为我真的不知道如何做我想要做的这些变量类型查询。基本上我的查询将根据用户输入的数据而变化。
感谢。
答案 0 :(得分:0)
尝试加入
echo $events_query;
代码中的语句,以查看生成的SQL是什么。通过这种方式查看任何错误要容易得多。一般来说,是的,这是完全合法的,并且生成这样的SQL很常见。
答案 1 :(得分:0)
构造查询的方法没有任何内在错误。您必须解释结果与您的期望有何不同,我建议回复/记录最终的$ events_query并将其与您的需求进行比较..
答案 2 :(得分:0)
字符串连接是构建SQL查询的合法方法,只要您遵守PHP的语法要求,就可以通过这种方式生成有效的SQL。
打印出生成的字符串(到日志文件或网页)并检查它是否与您认为生成的字符串匹配。它可能有一个杂散的引号或分号,它会改变或过早地终止查询。
将该字符串粘贴到MySQL的控制台中,看看它是否会产生任何其他错误。
关于直接接受用户输入到SQL查询的常见警告适用。
答案 3 :(得分:0)
$events_query = "SELECT eventID, event_name, event_type, event_address, event_duration, event_date, event_time, event_description, num_attending FROM events WHERE event_city ='$city' $type_query $date_query $time_query ";
回显这个查询副本在phpmyadmin中运行我们得到的结果,我们可以修改查询。