我有一个复选框表单,它传递一组id值。然后我像这样内爆阵列:
$ship = $_POST['result'];
$array=implode(",", $ship);
$shipping=ship_update($array);
Mysql查询功能如下所示:
function ship_update($array){
global $MEMS;
echo $array;
$query="SELECT * FROM Inventory
WHERE MEMS_ID IN ('$array')
ORDER BY WAFER ASC, RC ASC";
$shipping=$MEMS -> exec($query);
return $shipping;
}
当我运行此代码时,$ shipping返回一个空查询。我做错了什么?
答案 0 :(得分:2)
这应该是
$array = "'" . implode("','", $ship) . "'";
在您的查询中,
$query="SELECT * FROM Inventory
WHERE MEMS_ID IN ($array) // remove the single quotes to
ORDER BY WAFER ASC, RC ASC"; // avoid syntax error
警告,使用sql注入仍然容易受到攻击。
答案 1 :(得分:1)
尝试不使用'
单引号
SELECT * FROM Inventory
WHERE MEMS_ID IN ($array)
ORDER BY WAFER ASC, RC ASC
答案 2 :(得分:0)
数组中间没有任何单引号。改变
$array=implode(",", $ship);
到
$array=implode("','", $ship);