PDO:将数据插入数据库后得到结果的最佳方法是什么

时间:2013-08-10 09:45:46

标签: php database pdo

我是PDO的新手。我只是想知道在数据插入到数据库时最好的方法来获得结果。我在googl四处看看。看起来很灵活。这让我想知道什么是正确的,什么是不正确的方式。

让我们看看例子:

$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 

也许更多的方法让我疯狂,想要知道如果事情已经完成,获得结果的最佳方式是什么: 删除后,删除后,更新后这三个语句对于了解每个语句是最重要的。

任何建议都可能很精彩! } }

2 个答案:

答案 0 :(得分:0)

你可以这样做:

$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);
}

结果变量将包含您上次插入的记录

答案 1 :(得分:0)

是的,您使用rowCount()的方法是正确的。坚持下去。