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()しかし、 と を使用すると、非常に簡単に作成できます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 に答える