我想在单个查询中插入multipl行。
$firstname = array('Arfan','Awais','Ahmad'.....);
$lastname = array('Haider','k','Raza'..........);
插入数据:
INSERT INTO `table_nmae`(firstname,lastname)
VALUES
('Arfan','Haider'),('Awais','k'),('Ahmad','Raza');
如果这些只有三个记录,我很容易做到 如果我不知道有多少记录存在,那么我就无法使用上述记录 然后我做了什么?
更新
如果我不知道数组中的记录数。我可以简单地使用foreach loop
来做到这一点
但这会降低性能。
foreach($firstname as $f){
foreach($lastname as $l){
INSERT INTO `table_name`(firstname,lastname)
VALUES('$f','$l');
}
}
现在这次我正在使用多个查询。我认为单个查询对性能有好处。
FOR ONE COLUMN:
如果我只有一列,则可以很容易地使用单个查询。
INSERT INTO `table_name`(firstname) VALUES
.implode(',', $firstname);
但这里有多栏我怎么能为那些人做到这一点 感谢.....
答案 0 :(得分:0)
如果for
和$firstname
数组长度相同,则使用$lastname
循环
$str = "INSERT INTO `table_nmae`(firstname,lastname) VALUES"; // create string of query
for($i = 0 ;$i< count($firstname); $i++) {
$str .= "('" . $firstname[$i] . "','" . $lastname[$i] . "'),"; //append the values
}
$str = trim($str, ","); // remove last ,
答案 1 :(得分:0)
尝试
$size_of_array = count( $firstname );
$query = "INSERT INTO `table_nmae`(firstname,lastname) VALUES ";
for($i = 0; $i < $size_of_array; $i++ )
{
if( $i !== ($size_of_array-1))
$query .= "('{$firstname[$i]}', '{$lastname[$i]}'),";
else
$query .= "('{$firstname[$i]}', '{$lastname[$i]}')";
}
echo $query;
?>
答案 2 :(得分:0)
假设您有多个值,例如$ values_arr。
$count = count( $values_arr );
$query = "INSERT INTO `table_nmae`(firstname,lastname) VALUES ";
for($i = 0; $i < $count; $i++ )
{
if( $i == 0)
$query .= "('{$values_arr[$i]['firstname']}', '{$values_arr[$i]['lastname']}')";
else
$query .= ",('{$values_arr[$i]['firstname']}', '{$values_arr[$i]['lastname']}')";
}
echo $query;