插入多个数据时,此PDO PHP中的数组到字符串转换出错
正在尝试插入此数组 数组到字符串转换错误 但数据正在插入数据库中插入多个数据时,此PDO PHP中的数组到字符串转换出错,php,mysql,pdo,Php,Mysql,Pdo,正在尝试插入此数组 数组到字符串转换错误 但数据正在插入数据库中 $connect = new PDO("mysql:host=localhost; dbname=dentist", "root", ""); if (isset($_POST['problem'])) { $problem = $_POST['problem']; $tooth = $_POST['tooth']; $intervention = $_POST['intervention']; 用于插入数组的For循环 fo
$connect = new PDO("mysql:host=localhost; dbname=dentist", "root", "");
if (isset($_POST['problem'])) {
$problem = $_POST['problem'];
$tooth = $_POST['tooth'];
$intervention = $_POST['intervention'];
用于插入数组的For循环
for ($i = 0; $i < count($problem); $i++) {
$query = "INSERT INTO tbl_finds (problem, tooth, intervention)
VALUES ($problem[$i], $tooth[$i], $intervention[$i])";
$stmt = $connect->prepare($query);
$stmt->execute(array($_POST['problem'], $_POST["tooth"], $_POST["intervention"]));}}
for($i=0;$iprepare($query);
$stmt->execute(数组($\u POST['problem'],$\u POST[“tooth”],$\u POST[“interference”]);}
您将直接向查询赋值,并尝试使用execute()
在下一行绑定它们。不要这样做
你可以这样做:
$query = "INSERT INTO tbl_finds (problem, tooth, intervention) VALUES (?, ?, ?)";
$stmt = $connect->prepare($query);
foreach($_POST['problem'] as $key=>$value){
$stmt->execute(array($value, $_POST["tooth"][$key], $_POST["intervention"][$key]));
}
完整代码为:
$connect = new PDO("mysql:host=localhost; dbname=dentist", "root", "");
if (isset($_POST['problem'])) {
$problem = $_POST['problem'];
$tooth = $_POST['tooth'];
$intervention = $_POST['intervention'];
$query = "INSERT INTO tbl_finds (problem, tooth, intervention) VALUES (?, ?, ?)";
$stmt = $connect->prepare($query);
foreach($_POST['problem'] as $key=>$value){
$stmt->execute(array($value, $_POST["tooth"][$key], $_POST["intervention"][$key]));
}
}
注意:-
$\u POST['problem']、$\u POST[“tooth”]、$\u POST[“interference”]
这三个都是数组,因此当您直接使用它们作为值绑定到查询时,您会遇到错误。您有什么要求?运行此代码时会遇到“数组到字符串转换错误”。请通读并提出问题。您发布的代码也很可能被SQL注入攻击所利用。@Somasundaram很乐意帮助您:)。快乐编码