I use a very simple insert statement
INSERT INTO table (col1, col2, col3) VALUES (1,2,3), (4,5,6), (7,8,9), ...
Currently, the part of the query that holds the values to be inserted is a separate string constructed in a loop.
How can I insert multiple rows using a prepared statement?
edit: I found this piece of code. However, this executes a seperate query for every row. That is not what I am looking for.
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("INSERT INTO table (col1, col2, col3) VALUES (?,?,?)")){
$stmt->bind_param('iii', $_val1, $_val2, $_val3);
foreach( $insertedata as $data ){
$_val1 = $data['val1'];
$_val2 = $data['val2'];
$_val3 = $data['val3'];
$stmt->execute();
}
}
edit#2: My values come from a multidimensional array of variable length.
$values = array( array(1,2,3), array(4,5,6), array(7,8,9), ... );
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…