【问题标题】:How to use PHP Array in MySQL Select statement with IN? [closed]如何在带有 IN 的 MySQL Select 语句中使用 PHP 数组? [关闭]
【发布时间】:2013-06-27 09:23:15
【问题描述】:

我有一个数组,但我编写了这个不起作用的代码。有人可以帮我解决这个问题吗?非常感谢!

 $sql = "SELECT * FROM `product` WHERE `product`.`Productcode` IN (".$array.") ";
         $result=mysql_query($sql);
         if(!$result)die('not exist');

【问题讨论】:

标签: php mysql arrays select


【解决方案1】:

数组应该是一个字符串

$string = implode("','", $array);
$sql = "SELECT * FROM `product` WHERE `product`.`Productcode` IN ('".$string."') ";

如果产品代码是整数则不需要引号

【讨论】:

  • 请注意,如果数组包含整数,则不需要引号。
  • 当我写这个的时候,我有错误!!!
  • and if(!$result)die('不存在');显示在我的网页中??
  • @Darya 代替 die('not exists')die(mysql_error()) 并告诉我们你看到了什么
  • @Darya 现在您有了调试代码所需的信息。祝你好运。
【解决方案2】:

如果你的数组不是多维的,试试这个

$sql = "SELECT * FROM `product` WHERE `product`.`Productcode` IN ('".implode("',", $array)."') ";

【讨论】:

  • 你的内爆参数是错误的。
【解决方案3】:

您需要将implode() 数组转为字符串(假设您的$array 实际上是一个数组):

$sql = "SELECT * FROM `product` WHERE `product`.`Productcode` IN ('" . implode("', '", $array) . "')";

【讨论】:

  • 当我写这个时,我有错误!和 if(!$result)die('不存在');我的网页中不存在显示??
【解决方案4】:

您需要将数组内爆为逗号分隔列表,然后才能使用 IN()

IN(".implode(',',$array).")

【讨论】:

    猜你喜欢
    • 2016-03-25
    • 2011-11-24
    • 2020-06-20
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2018-07-07
    相关资源
    最近更新 更多