ソースを載せておきます。
CODE:
$value) {
$sql .= sprintf('`%s` = ?, ', $column);
}
$sql = preg_replace('/,\s$/','', $sql);
}
if (!empty($onDuplicateKeyUpdate)) {
$sql .= 'ON DUPLICATE KEY UPDATE ';
foreach ($onDuplicateKeyUpdate as $key => $value) {
$sql .= sprintf('`%s` = %s, ', $key);
}
$sql = preg_replace('/,\s$/','', $sql);
}
return $sql;
}
31行目、39行目、46行目は、カンマと半角スペースが最後の文字として追加されてしまうのでそのための文字を整形しています。
CODE:
I 'テスト',
'email' => 'naolin_17_1986@yahoo.co.jp',
'url' => 'http://www.yahoo.co.jp',
'password' => '1234',
'main' => '今日もがんばろう',
'time' => 'CURRENT_TIMESTAMP()',
'ip' => $_SERVER['REMOTE_ADDR']
];
$sql = insertSql('users', $parameter);
echo $sql;
実行結果:
CODE:
INSERT INTO users SET `name` = ?, `email` = ?, `url` = ?, `password` = ?, `main` = ?, `time` = ?, `ip` = ?
insertSqlで返される文字は PDO::prepareメソッドを呼び出すのに適しています。