我对PDO很陌生。我只是想知道当数据完全插入数据库时,获得结果的最佳方式是什么。我在谷歌四处看看。看起来很灵活。这让我想知道什么是正确的,什么是不正确的。
看看例子:
$sql = $conn->prepare("INSERT INTO tb_user(user_name, user_email) VALUES(:user_name,:user_email);
$sql->execute(array(':user_name'=>$user_name, ':user_email'=>$user_email));
$affected_rows = $sql->rowCount();
从这个脚本中,我想得到数据是否完成插入数据库的结果。如果完成了-->,我会像"完成"一样回显它,并将其发送回ajax或其他…
我试过:
if($affected_rows){
echo"YEZZ!! complete";
}
和
$all = $slq->fetchAll();
if(count($all)) {
echo"YEZZ!! complete";
}
和
if ($sql->execute){
echo"YEZZ!! complete";
//this one i know it will double insert data to database because I called it twice//
But I still want to know when can I use this method
也许还有更多的方法让我抓狂,想知道如果事情完成了,什么是获得结果的最佳方法:A插入后、删除后、更新后这3条语句是最重要的。
任何建议都可能很棒!}}
你可以做:
$id = $conn->lastInsertId('IDCOLUMN');
然后执行查询并搜索id
$stmt = $conn->prepare("SELECT * FROM tb_user WHERE IDCOLUMN = :id");
$stmt->execute(array("id", $id);
if($stmt->rowCount() > 0) {
$result = $stmt->fetch(PDO::FETCH_ASSOC);
}
结果变量将包含您最后插入的记录
是的,您使用rowCount()
的方法是正确的。坚持下去。