how to add multiple records in mysql using php. Is using array the only solution to this problem. Because I tried using array but the record that would be added in the database would look like this: array
+3
A:
You need to go through each member of the array:
foreach($array as $record)
{ ... }
and perform an INSERT query for each member or - better for performance - insert all records in one statement as outlined in stereofrog's answer.
Pekka
2010-01-23 13:55:00
It would be better to perform it all as one query instead of having to hit the DB for each iteration. No?
John Conde
2010-01-23 14:34:51
True. @stereofrog's answer outlines how. I didn't know VALUES can do multiple rows at once!
Pekka
2010-01-23 14:44:18
+4
A:
You can use a multivalue insert statement (INSERT... VALUES (record1), (record2) etc) (see http://dev.mysql.com/doc/refman/5.1/en/insert.html)
This is how you can construct such a statement from array of records
$values = array();
foreach($records_array as $record)
$values[] = sprintf("( '%s' , '%s' )", addslashes($record['name']), addslashes($record['email']));
$sql = "INSERT INTO users(name, email) VALUES " . implode(",", $values);
mysql_query($sql);
stereofrog
2010-01-23 14:02:43