Php PDO插入到插入两行中

Php PDO插入到插入两行中,php,mysql,pdo,rows,Php,Mysql,Pdo,Rows,我的请求PDO Insert into是在我的表中插入两行,请问如何解决? 这是我的脚本 try { $bdd = new PDO('mysql:host=XXX;dbname=XXX;charset=utf8', 'XXX', 'XXX'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e) { die('Erreur : ' . $e-&

我的请求PDO Insert into是在我的表中插入两行,请问如何解决? 这是我的脚本

 try
{
    $bdd = new PDO('mysql:host=XXX;dbname=XXX;charset=utf8', 'XXX', 'XXX');
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


}
catch(Exception $e)
{
    die('Erreur : ' . $e->getMessage());
}
    $today = date("Y-m-d");
    $id = $_POST['id'];
    $min = $_POST['min'];
    $req = $bdd->prepare('INSERT INTO Commentaires(pseudo, commentaire, date_comment, id_video) VALUES(:pseudo, :commentaire, :date_comment, :id_video)');

    $req->execute(array(
        'pseudo'=>$_POST['pseudo'],
        'commentaire'=>$_POST['comment'],
        'date_comment'=> $today,
        'id_video'=>$id));

    $req->execute();
    $req->closeCursor();
    header('Location: read.php?min='.$min.'&id='.$id);

只需删除第二次执行

试试看{
$bdd=newpdo('mysql:host=XXX;dbname=XXX;charset=utf8','XXX','XXX');
$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
}捕获(例外$e){
die('Erreur:'.$e->getMessage());
}
$today=日期(“Y-m-d”);
$id=$_POST['id'];
$min=$_POST['min'];
$req=$bdd->prepare('INSERT-INTO-commentals(pseudo,commentaire,date\u comment,id\u video)值(:pseudo,:commentaire,:date\u comment,:id\u video)');
$req->execute([
'pseudo'=>$\u POST['pseudo'],
'commentaire'=>$\u POST['comment'],
“date_comment”=>今天$,
'id_video'=>$id
]);
$req->closeCursor();

编辑:删除了重定向代码。

您调用了两次
$req->execute()
,这就是它插入两行的原因。删除第二个呼叫。如果这些是live数据库的有效凭据,您应该尽快更改它们@rickdenhaan嗯,文档中没有提到。只是检查了PDO源代码。当它得到一个数组参数时,它调用
bindParam
bindValue
(不确定,它是调用内部函数的C代码),然后它就落到了使用绑定参数的代码上。@rickdenhaan可能他们没有记录它,因为他们不想提交到这个实现。但是,如果没有记录,在没有参数的情况下调用并且没有显式调用bindXXX时不会出现错误,这就像是一个错误。第二次执行应该会出现错误,因为它缺少参数数组,所以不会导致双条目。欢迎您。请更改数据库用户和密码,因为它已公开。