Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入多个数据时,此PDO PHP中的数组到字符串转换出错_Php_Mysql_Pdo - Fatal编程技术网

插入多个数据时,此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很乐意帮助您:)。快乐编码