我正在編輯使用MySQLi的腳本。我需要使用準備好的語句將一些值插入到數據庫中。PHP - MySQL準備好的語句來插入數組
我的陣列的形式:
$insert = array('column1' => 'value1', 'column2' => 'value2', 'column3' => 'value3')
我有這到目前爲止,但我需要與bind_param
部分幫助。我在這裏看到了使用call_user_func_array
的文檔,但我不確定如何實現這一點。
$cols = array_keys($insert);
$query = "INSERT IGNORE INTO results (". implode(", ", $cols) .") VALUES (". implode(', ', array_fill(0, count($insert), '?')) .")";
$stmt = $mysqli->prepare($query);
$param = array_merge(array(str_repeat('s', count($insert))), array_values($insert));
call_user_func_array(array($stmt, 'bind_param'), $param);
$stmt->execute();
PHP 5.4.17
PHP.net文檔做了很好的解釋功能:http://php.net/manual/en/mysqli-stmt.bind-param.php – SamA
謝謝,但那是我的第一個目的地。我一直無法完全弄清楚。 – atb
@allanb,在SamA的鏈接中查看帶有ReflectionClass(上面的評論)例子的評論。 – Arantir