【问题标题】:How to process array element into MySQL with PHP?如何使用 PHP 将数组元素处理成 MySQL?
【发布时间】:2013-09-09 01:09:28
【问题描述】:

我想获取一个数组的元素,并使用 PHP 将其放入 MySQL 查询中,如下所示:

$ArrayOne = {3, 5, 8, 2};
$sql = SELECT * from myTable WHERE id1='3' and id2='5' and id3='8' and id4='2';

我是这样做的,但是失败了:

for ($i=0; $i<count($ArrayOne); $i++) {
  $element.$i = $ArrayOne[$i];
}
  $sql = ("SELECT * from myTable WHERE id1=". $element.$i ." and id2=". $element.$i ." and id3=". $element.$i ." and id4=". $element.$i .");

我认为$element.$i 具有相同的值,但我不知道如何获取 Array 元素的不同值。 如果我这样做,那也是错误的。

for ($i=0; $i<count($ArrayOne); $i++) {
  $element.$i = $ArrayOne[$i];    
  $sql = ("SELECT * from myTable WHERE id1=". $element.$i ." and id2=". $element.$i ." and id3=". $element.$i ." and id4=". $element.$i .");
}

任何机构都可以提供解决方案吗?

【问题讨论】:

  • 我建议您改为访问 php.net 并阅读 PDO 库。如果您要开始学习如何进行 php db 查询,最好像我们一样学习如何安全有效地进行。

标签: php mysql


【解决方案1】:

试试这个:

$count = count($ArrayOne);
for($i=0; $i<$count; $i++){
    $where_arr[$i] = 'id'.$i.'='.$ArrayOne[$i];
}

$sql = "select * from myTable where ".implode(" and ",$where_arr);

【讨论】:

  • 非常感谢噩梦。是的,我认为这可能是解决方案。
【解决方案2】:

你的代码有几个错误

第一个是:

$ArrayOne = {3, 5, 8, 2};

应该是:

$ArrayOne = array(3, 5, 8, 2);

第二个错误,您的$sql 变量没有包含在引号之间应该是$sql="your query";

如果你的数组有固定长度,你就不需要使用循环:

$ArrayOne = array(3, 5, 8, 2);

 $sql =  "SELECT     * 
     from       myTable 
     WHERE      id1='$ArrayOne[0]'
     and        id2='$ArrayOne[1]'
     and        id3='$ArrayOne[2]'
     and        id4='$ArrayOne[3]'";

对于可变长度的数组,您可以使用@Nightmare 的答案

附注:

了解SQL Injection

你应该学习PDO,如果你开始学习php,那么就用正确的方式来学习

Manual

【讨论】:

    猜你喜欢
    • 2022-11-24
    • 1970-01-01
    • 2014-09-24
    • 2014-12-08
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多