如何解决PHP / MySQL-将字符串附加在一起以进行查询..?
| 有什么理由不应该这样做吗?$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中执行方式是否存在问题。如果不是,那意味着我有一个逻辑问题,我更喜欢,因为我真的不知道该怎么做这些我想做的变量类型查询。基本上,我的查询会因用户输入的数据而异。
谢谢。
解决方法
尝试放入
echo $events_query;
代码中的语句,以查看生成的SQL是什么。以这种方式查看任何错误要容易得多。一般来说,是的,这是完全合法的,生成这样的SQL非常普遍。
, 这种构造查询的方法没有本质上的错误。您将不得不解释结果与您的预期有何不同,我建议您回显/记录最终的$ events_query并将其与您的需求进行比较。
, 字符串连接是构建SQL查询的合法方法,只要您遵守PHP的语法要求,就可以通过这种方式生成有效的SQL。
打印出生成的字符串(到日志文件或网页),并检查其是否与您认为的生成内容匹配。它可能带有引号或分号,会改变或过早终止查询。
将该字符串粘贴到MySQL的控制台中,看看它是否还有其他错误。
有关直接将用户输入直接接受到SQL查询中的通常警告适用。
, $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中运行,我们得到结果,然后可以修改查询。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。