如何用PHP将数组元素处理成MySQL?

如何用PHP将数组元素处理成MySQL?,php,mysql,Php,Mysql,我想获取数组的元素,并使用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 *

我想获取数组的元素,并使用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 .");
任何机构都能提供解决方案吗?

试试这个:

$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);
$count=count($ArrayOne);

对于($i=0;$i您的代码中有几个错误

第一个是:

$ArrayOne = {3, 5, 8, 2};
应该是:

$ArrayOne = array(3, 5, 8, 2);
第二个错误,您的
$sql
变量没有包含在引号之间,应该是
$sql=“您的查询”

如果阵列具有固定长度,则无需使用循环:

$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]'";
对于可变长度的数组,可以使用@噩梦的答案

作为旁注:

了解

您应该学习PDO,如果您开始学习php,请使用正确的方法


我鼓励您访问php.net并阅读PDO库。如果您打算开始学习如何进行php db查询,最好学习如何安全高效地进行查询。非常感谢。是的,我认为这是一个解决方案。
$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]'";