【问题标题】:PHP/MySQL - appending strings together to make a query..?PHP/MySQL - 将字符串附加在一起以进行查询..?
【发布时间】:2011-06-01 04:15:36
【问题描述】:

这有什么不可行的原因吗?

$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 中的执行方式是否有问题。如果不是,那么这意味着我有一个我更喜欢的逻辑问题,因为我真的不知道如何做这些我想做的变量类型查询。基本上我的查询会因用户输入的数据而异。

谢谢。

【问题讨论】:

  • 这种构造查询的方法本身并没有错。您必须解释结果与您的预期有何不同,我建议回显/记录最终的$events_query 并将其与您的需求进行比较..
  • 好的,没关系,我只是想确认这种语法是否有效。我现在可以得出结论,问题是我在某处的错误逻辑 =)
  • 你试过删除“。”从查询的结尾部分开始?
  • 如果上面的代码没有给你预期的结果,你应该告诉我们预期的结果和实际的结果。每个没有规范的代码都是没有错误的。

标签: php mysql string


【解决方案1】:

尝试加入

echo $events_query;

您的代码中的语句以查看生成的 SQL 是什么。以这种方式查看任何错误要容易得多。不过,一般来说,是的,这是完全合法的,并且生成这样的 SQL 很常见。

【讨论】:

    【解决方案2】:

    这种构造查询的方法本质上没有任何问题。您必须解释结果与您的预期有何不同,我建议回显/记录最终的 $events_query 并将其与您的需求进行比较..

    【讨论】:

      【解决方案3】:

      字符串连接是构建 SQL 查询的一种合法方式,只要您遵守 PHP 的语法要求,您就可以通过这种方式生成有效的 SQL。

      打印出生成的字符串(到日志文件或网页)并检查它是否与您认为生成的字符串相匹配。它可能有一个杂散的引号或分号,会改变或提前终止查询。

      将该字符串粘贴到 MySQL 的控制台中,看看它是否给出了任何其他错误。

      适用于直接接受用户输入到 SQL 查询中的常见警告。

      【讨论】:

        【解决方案4】:
         $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 ";
        

        echo this query copy run in phpmyadmin 我们得到结果,然后我们可以修改查询。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-09
          • 1970-01-01
          • 2019-02-10
          • 1970-01-01
          • 2011-10-27
          • 1970-01-01
          相关资源
          最近更新 更多