0

是否有函数编码关联数组以在 mySQLINSERT命令中使用?

这样你可以这样做:

$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)'
4

3 回答 3

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;
}
于 2012-04-26T16:05:02.190 回答
0

我知道没有内置功能。但是你可以很容易地使用array_keys()and array_values()

于 2012-04-26T16:02:46.453 回答
0

没有内置功能。

$sql = array();
foreach ($anArray as $f=>$v) $sql[] = "`{$f}`" = "'".mysql_real_escape_string($v)."'";
$query = "INSERT INTO table SET ".join(",", $sql);
于 2012-04-26T16:06:36.263 回答