【问题标题】:How to concatenate query string如何连接查询字符串
【发布时间】:2017-11-02 10:38:09
【问题描述】:
    $query="SELECT * FROM Table WHERE `id`=1 AND ";
    if(somecondition){
       $query .=" AND `ROUND(DATEDIFF(w.time_start, w.time_end) / 365.25)` >='".$data."'";
    }

我期望的是:当我使用 ' ' 时,它会连接起来。

SELECT * FROM Table WHERE `id`=1 AND `ROUND(DATEDIFF(w.time_start,w.time_end) / 365.25)`>='$data';

【问题讨论】:

  • 了解prepared statements以防止SQL注入
  • 请注意格式化您的问题。您可以预览,这样您就可以看到它的外观,并且您可以使用一些按钮(例如,使用 {} 按钮获取代码)
  • 您确定if 语句中的条件返回true?
  • 关于您的问题:请添加您的期望,发生的情况等。这只是转储一些代码并说它不起作用。你甚至会期待什么?那里似乎没有有效的 sql,例如我认为你的反引号应该是'?但是,如果它连接起来,它会说 SELECT * Table AND ..... 那是无效的
  • 是的,我正在检查它,而条件返回 true。@Jens

标签: mysql string escaping


【解决方案1】:

开头有空格会导致问题,对于 mysql ' 必须在值周围使用,而 ` 反引号应该在标识符名称周围使用,例如列名。

【讨论】:

    猜你喜欢
    • 2017-12-15
    • 2012-09-05
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多