反转mysql_fetch_assoc(mysql_set_assoc / mysql_encode_assoc)

时间:2012-04-26 16:00:37

标签: php mysql

是否有编码关联数组的函数在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)'

3 个答案:

答案 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);