在foreach循环php之后执行唯一查询


Execute unique query after foreach loop php

我必须用大小来自数组变量的值更新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