Php PDO插入到插入两行中
我的请求PDO Insert into是在我的表中插入两行,请问如何解决? 这是我的脚本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-&
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时不会出现错误,这就像是一个错误。第二次执行应该会出现错误,因为它缺少参数数组,所以不会导致双条目。欢迎您。请更改数据库用户和密码,因为它已公开。