我必须用大小来自数组变量的值更新mysql表。为此,我做了类似的事情,但这段代码执行的查询数量相当于数组上的项数,很难管理错误。如何只执行一个查询,却仍然使用foreach循环?php版本的服务器太旧了,不支持mysqlquery以外的任何东西。
foreach($decoded_array as $key=>$value)
{
if(!is_numeric($value))
{
$value = "'".$value."'";
}
echo $sql ="UPDATE table SET ".$key." = ".$value.";
$res = mysql_query($sql);
}
$set = "";
foreach($decoded_array as $key=>$value)
$set .= ($set ? "," : "") . $key . "=" . (is_numeric($value) ? $value : "'".$value."'");
$sql = "UPDATE table SET " . $set;
$res = mysql_query($sql);
但我不确定用"$价值"'"是安全的。我更喜欢mysqli函数escape_string。
echo $sql ="UPDATE table SET ".$key." = ".$value.";
将此更改为该
$sql ="UPDATE table SET '".$key."' = '".$value."';
和这个
$value = "'".$value."'";
到这个
$value = '".$value."';
还有一个想法是mysql函数被取消了定价。
使用mysqli_Function或PDO
对于mysqli_函数,请检查此链接http://php.net/manual/en/book.mysqli.php
对于PDO,请检查此链接http://php.net/manual/en/book.pdo.php