根据我的项目要求,我有多个记录要插入表格中。
我正在使用存储过程......即700条记录然后循环迭代700次,程序调用700次。所以它需要太多的负担。
为此,我尝试过:
存储过程:
BEGIN
INSERT INTO tmp (`std`,`fees`) VALUES (str1);
END
代码:
for($i=0;$i<count($keys);$i++){
if($i == (count($keys)-1)){
$str .= "$std,$fees";
} else {
$str .= "$std, $fees),(";
}
}
include("../admin/conn.php");
$insert_stud_sql = mysqli_query($con, "CALL insertStudd($str)");
完成循环后,我的str值如下
12,25000),(8,15000),(4,12000
因此,在程序中我的查询将变为
BEGIN
INSERT INTO tmp (`std`,`fees`) VALUES (12,25000),(8,15000),(4,12000);
END
经过所有的过程...我不会得到正确的结果。我的意思是数据没有插入表格。
如果有任何解决方案或替代方案,那么请帮助我......
提前谢谢
答案 0 :(得分:0)
这里有语法错误,你错过了收尾报价。
$str .= "$std,$fees";
还要确保您已将变量$str
声明为$str="";
答案 1 :(得分:0)
尝试这样的事情。
PHP代码
for($i=0;$i<count($keys);$i++){
$str.="(".$std.",".$fees."),";
}
$str="values ".rtrim($str, ",");
这将输出类似values (12,25000),(8,15000),(4,12000)
<强> SP 强>
BEGIN
set @query= CONCAT('INSERT INTO tmp (`std`,`fees`)',str1);
PREPARE dynamic_statement FROM @query;
EXECUTE dynamic_statement;
END
现在执行$insert_stud_sql = mysqli_query($con, "CALL insertStudd($str)");
这将解决您的问题。