pdo的增删改操作与获取正确的受影响行数的方法

query('set names utf8;');
//2.执行操作
$sql = 'INSERT INTO `imooc_cate` (`cName`) VALUES (:cName) ';
$stmt = $pdo->prepare($sql);
$cName = '大米手机';
$stmt->bindParam(':cName', $cName, PDO::PARAM_STR, 10);
$stmt->execute();
if ($stmt->rowCount() > 0) {
    echo '成功的添加了' . $stmt->rowCount() . '条记录';
}
//更新操作
$sql = "UPDATE `imooc_cate` SET `cName` = '小米手环' WHERE `id` = 26";
$stmt = $pdo->prepare($sql);
$stmt->execute();
if ($stmt->rowCount() > 0) {
    echo '成功的更新了' . $stmt->rowCount() . '条记录';
}
//删除操作
$sql = "DELETE FROM `imooc_cate` WHERE id = 33";
$stmt = $pdo->prepare($sql);
$stmt->execute();
if($stmt->rowCount()>0){
    echo '成功的删除了'.$stmt->rowCount().'条记录';
}
//关闭连接
$pdo = null;
?>

注:PDO::rowCount()方法在对于增删改操作时返回的值是正确的,但当涉及查的操作时,会受当前使用的数据库影响,若一次查询的量过于庞大,会导致数据库只返回一部分结果集,在需要时再返回其他结果集,从而使PDO::rowCount()方法出错,此时需要使用另一种方法代替。

query方法——

$sql = 'SELECT COUNT(*) FROM `message`';
$row = $pdo->query($sql);
$rowcount = $row->fetch();
echo $rowcount[0];

execute(预处理方法)——

$sql = 'SELECT COUNT(*) FROM `message`';
$stmt = $pdo->prepare($sql);
$stmt->execute();
$rowcount = $stmt->fetchColumn(0);
echo $rowcount;

 

你可能感兴趣的:(php,后端)