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

27 篇文章 0 订阅
<?php
//新增操作


header("content-type:text/html;charset=utf-8");
//1.连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=shopimooc', 'root', 'root');
$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;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值