我必须用大小来自数组变量的值更新mysql表。 为此我正在做这样的事情,但是这个代码执行许多查询作为数组上的项目数,并且很难管理错误。 我怎么只能执行一个查询但仍然使用foreach循环? php版本的服务器太旧了,不支持mysql_query以外的任何东西。
foreach($decoded_array as $key=>$value)
{
if(!is_numeric($value))
{
$value = "'".$value."'";
}
echo $sql ="UPDATE table SET ".$key." = ".$value.";
$res = mysql_query($sql);
}
答案 0 :(得分:1)
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
FOR PDO请检查此链接http://php.net/manual/en/book.pdo.php
答案 1 :(得分:1)
$set = "";
foreach($decoded_array as $key=>$value)
$set .= ($set ? "," : "") . $key . "=" . (is_numeric($value) ? $value : "'".$value."'");
$sql = "UPDATE table SET " . $set;
$res = mysql_query($sql);
但我不确定使用"'"。$ value。"'"是安全的。我更喜欢mysqli函数escape_string。