我正在尝试使用PHP在Db中插入多个记录。我的问题是我已经将$ sql_insert_usermeta3写入$ sql_insert_usermeta20所以差不多有20条SQL语句。请检查我的代码。是否有任何优化的方式来插入数据
mysqli_query($connect,$sql_insert_users);
$SQL_LATEST_REF_ID="select LAST_INSERT_ID() as lastid";
$RSO = mysqli_query($connect,$SQL_LATEST_REF_ID);
while($rsso = mysqli_fetch_array($RSO))
{
$lastuserid=$rsso['lastid'];
}
$sql_insert_usermeta1 = "INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES ('$lastuserid', 'first_name', '')";
mysqli_query($connect,$sql_insert_usermeta1);
$sql_insert_usermeta2 = "INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES ('$lastuserid', 'last_name', '')";
mysqli_query($connect,$sql_insert_usermeta2);
$sql_insert_usermeta3 = "INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES ('$lastuserid', 'nickname', '$email')";
mysqli_query($connect,$sql_insert_usermeta3);
答案 0 :(得分:4)
您可以将多个INSERT
语句合并到一个查询中,如下所示:
INSERT INTO Table (fieldA, fieldB) VALUES
(valueA1, valueB1),
(valueA2, valueB2),
(valueA3, valueB3),
(valueA4, valueB4);
这将同时插入4行,也是从MySQL的角度来看,所以使用适当的统一锁定等。
答案 1 :(得分:1)
由于使用相同的表和相同的列,您可以将所有插入添加到同一查询:
INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES
('$lastuserid', 'first_name', ''),
('$lastuserid', 'last_name', ''),
('$lastuserid', 'nickname', '$email');