【问题标题】:Trouble with using a php array in SQL WHERE clause在 SQL WHERE 子句中使用 php 数组时遇到问题
【发布时间】:2015-01-05 13:54:54
【问题描述】:

我的 php 页面中有一条如下所示的 sql 语句:

 $places=array('CHI','DET','LA','NYC','DALLAS');

$SQL="SELECT NAME,
             ID,
             PHONE,
             EMAIL,
             LOCATION
      FROM SHOPPERS
      WHERE LOCATION IN '{$places}'
      AND ID BETWEEN '25687' AND '28050'
      ";

然后我将查询作为表格回显,但我没有得到任何结果,因为 $places 数组存在问题。任何帮助,将不胜感激。谢谢你

【问题讨论】:

    标签: php sql arrays oracle


    【解决方案1】:

    您需要对其进行格式化以符合 SQL 的期望:

    $places=array('CHI','DET','LA','NYC','DALLAS');
    
    $SQL="SELECT NAME,
                 ID,
                 PHONE,
                 EMAIL,
                 LOCATION
          FROM SHOPPERS
          WHERE LOCATION IN ('".implode("', '", $places)."')
          AND ID BETWEEN '25687' AND '28050'
          ";
    

    SQL where column in 子句需要用括号括起来,因此您需要将它们添加到 - 然后您仍然需要将数组内爆成字符串。构造的 SQL 应该如下所示:

    $SQL="SELECT NAME,
                 ID,
                 PHONE,
                 EMAIL,
                 LOCATION
          FROM SHOPPERS
          WHERE LOCATION IN ('CHI','DET','LA','NYC','DALLAS')
          AND ID BETWEEN '25687' AND '28050'
          ";
    

    【讨论】:

    • 谢谢!我之前尝试过 implode,但我想我没有正确的撇号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2018-08-14
    • 2021-12-14
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多