Mysqli and binding multiple value sets during insert
mysql, mysqli, php
Solution
Simple:
$stmt = $mysqli->prepare("INSERT INTO some_names (firstName, lastName) VALUES (?, ?),(?,?),(?,?)")
$stmt->bind_param('ssssss', 'Joe', 'Smith','Fred','Sampson','Lisa','Pearce');
Problem
Hoping someone can give me some insight here. When having to insert multiple rows into a table at once, I've used sql that looks something like this: `INSERT INTO some_names (firstName, lastName) VALUES ('Joe', 'Smith'),('Fred','Sampson'),('Lisa','Pearce')` As you can see I'm inserting three rows with one statement. The reason I do this is that I believe it is more efficient than executing three distinct statements to insert the rows. So my question is this: how do I do this if I want to be able to bind my values to a statement? Unfortunately I've been looking all over the web and I can only find example of single statements in the form of: ``` $stmt = $mysqli->prepare("INSERT INTO some_names (firstName, lastName) VALUES (?, ?)"); $stmt->bind_param('ss', $firstName, $lastName); $firstName = "Joe"; $lastName = "Smith"; $stmt->execute(); $firstName = "Fred"; $lastName = "Sampson"; $stmt->execute(); ``` It seems that this would be the equivalent of doing separate INSERT statements and seems to be less efficient. So my question is: Is there any way to bind in a multi-insert statement? Please educate me here! Thanks