是否有编码关联数组的函数在mySQL INSERT
命令中使用?
这样你就可以:
$array = mysql_fetch_assoc($result);
$array['key'] = 'updated_value';
mysql_query('INSERT INTO table ' . mysql_encode_assoc($array));
mysql_encode_assoc输入:
array(
'name' => 'bob',
'vehicle' => 'car'
)
mysql_encode_assoc输出:
'(name, vehicle) VALUES(bob, car)'
答案 0 :(得分:4)
现在有:
function mysql_encode_assoc($array) {
$kenc = Array();
$venc = Array();
foreach($array as $k=>$v) {
$kenc[] = "`".mysql_real_escape_string($k)."`";
if( $v === null) $venc[] = "NULL";
else $venc[] = '"'.mysql_real_escape_string($v).'"';
}
$keys = "(".implode(",",$kenc).")";
$vals = "(".implode(",",$venc).")";
return $keys." VALUES ".$vals;
}
答案 1 :(得分:0)
我没有内置的功能。但您可以轻松使用 array_keys()
和 array_values()
。
答案 2 :(得分:0)
没有内置功能。</ p>
$sql = array();
foreach ($anArray as $f=>$v) $sql[] = "`{$f}`" = "'".mysql_real_escape_string($v)."'";
$query = "INSERT INTO table SET ".join(",", $sql);