我想像这样做Mysql查询:
$sql = mysql_query("SELECT * FROM myTable WHERE id='11' AND number='23' AND value='45' AND result='101' ");
我想使用"$myArray"数组元素更改mysql_query的 WHERE 变量。
$myArray[0] = array(11, 23, 45, 101); => this is the current query
$myArray[1] = array(21, 31, 70, 58);
$myArray[2] = array(8, 77, 68, 94);
我试图得到这样的结果:
foreach($myArray[] as $singleRow) {
foreach($singleRow as $myElement) {
$sql = mysql_query("SELECT * FROM myTable WHERE id='". $myElement ."' AND number='". $myElement ."' AND value='". $myElement . "' AND result='". $myElement ."' ");
}
}
或者像这样:
for ($i=0; $i<count($myArray); $i++) {
foreach($myArray[$i] as $myElement) {
$sql = mysql_query("SELECT * FROM myTable WHERE id='". $myElement ."' AND number='". $myElement ."' AND value='". $myElement . "' AND result='". $myElement ."' ");
}
}
两者都错了... 如何做正确的?
谢谢
不知道为什么要这样做,特别是考虑到mysql_*函数被弃用,但为了学习,在这种情况下,你可以做这样的事情:
foreach($myArray as $row) {
$sql = mysql_query( "SELECT * FROM myTable WHERE id='". $row[0] ."' AND number='". $row[1] ."' AND value='". $row[2] . "' AND result='". $row[3] ."' ");
}
您添加了太多循环,并且没有在正确的时间引用正确的变量:
foreach($myArray as $singleRow) {
$sql = mysql_query("SELECT * FROM myTable WHERE id='". $singleRow[0] ."' AND number='". $singleRow[1] ."' AND value='". $singleRow[2] . "' AND result='". $singleRow[3] ."' ");
}
我真的建议切换到PDO或mysqli。不仅mysql_*函数被弃用并且很容易被SQL注入,PDO和mysqli都允许您发送数组作为参数,并将为您处理报价封装。