如何在php中使用prepared语句将数组结果插入mysql

fykwrbwg  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(295)

我使用prepared语句将记录插入mysql,对于非数组值,下面的代码很好,但是对于发布的数组类型,它给出了错误:
数组到字符串转换
索引.php

<input type="text" name="test[]" /> 
<input type="text" name="test1[]" />

输出

[test] => Array ( [0] => 1 ) [test1] => Array ( [0] => 2 )

php insert(发布的数据是数组)

$test=array_map('trim',$_POST["test"]);
$test1=array_map('trim',$_POST["test1"]);

$stmt = $conn->prepare("INSERT INTO test(v1,v2) VALUES (?,?)");
stmt->bind_param("ss",$test,$test1)
stmt->execute();

现在,请帮助我们如何使用prepared语句在mysql中插入数组数据。稍后我需要使用prepared语句记录多行。谢谢

9rygscc1

9rygscc11#

试试这个:

$test=array_map('trim',$_POST["test"]);
$test1=array_map('trim',$_POST["test1"]);

$stmt = $conn->prepare("INSERT INTO test(v1,v2) VALUES (?,?)");
$error=false;
foreach($test AS $key=>$value){
    if(! stmt->execute([$value,$test1[$key]])){
       $error=true;  
       break;
    }
}
if($error) // handle error

在这样的循环中运行查询是prepared语句的用途。

相关问题