PDO直接exec返回的是int值是影响的条数么?但PDO预编译的执行却是布尔值这。。。?

PDO直接exec返回的是int值是影响的条数么?但PDO预编译的执行却是布尔值这。。。?

http://img1.sycdn.imooc.com//climg/5c3370cc0001d05913460696.jpg

http://img1.sycdn.imooc.com//climg/5c3370e80001d87c13170664.jpg

$sql = "UPDATE `users` SET `money`=`money`+10 WHERE `id`=1;";
$r1=$pdo->exec($sql);
1.PDO 执行增加、更新、删除操作返回的是影响的条数?我看视频里返回的是 int 1,是不是这样呢?
2.但PDO预编译的执行返回的却是TRUE,莫非 遇到 如更新时id =100时,id不存在 ,也会返回执行成功?还需要用有别的方式得到是否真正修改?还是如果遇到这种情况返回的是FALSE?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,1.同学说的是哪个函数执行增加、更新、删除操作。视频中是使用的哪个函数请反馈。

2.execute成功时返回 TRUE, 或者在失败时返回 FALSE。 预编译返回true为成功。

祝学习愉快!

  • 轩辕小齐V 提问者 #1
    老师您好!这节课讲的是预处理,但之前2-1PDO的课,更新(update)成功,课程中应该是第10分钟左右时,打印结果是 int 1,对比这里的 boolean 值 TRUE,学生不禁想问,PDO预处理 非查询语句 execute后的结果 ,是不是已经过滤了 如id=100 不存在这种情况,返回的依然是FALSE?
    2019-01-08 13:41:29
  • 好帮手慕查理 回复 提问者 轩辕小齐V #2
    您好,2-1课中修改数据使用的是exec函数,而exec函数返回修改或删除 SQL 语句影响的行数。如果没有受影响的行,则返回 0。 而预处理中使用的是execute函数,execute函数成功时返回TRUE, 或者在失败时返回FALSE。 两个课中的函数不同,返回值不同,输出的结果自然不同。execute函数查询失败时会返回FALSE。祝学习愉快!
    2019-01-08 15:20:29
  • 轩辕小齐V 提问者 回复 好帮手慕查理 #3
    老师 我的问的就是这个啊,假如是更新或者插入语句,execute 无需判断?是否真的 修改、插入、删除成功?例如我举的例子 ,假如更新一条不存在的数据,mysqli也会返回true,需要用affected识别,但是pdo 的exec不需要返回的影响的数据条数,我问的是execute 返回的true,是否是已经判断了这种情况!!你们视频不严谨,就罢了,为啥,我努力表达的这么清楚,您还是答非所问?我不知道这是两个函数么,我亲爱的老师?如果视频更严谨些,我绝逼不会问,更不会问这么多,何况我这几个问题真的多么?没有发现问题的学生又真的在学么?这是份工作,不是一份福利,如果您们把多提问当成沙子,那么这沙子只能越堆越多,如果您们把多提问当成一种信息调研,促进课程改革,那这就是金子,如果我是奇葩,那么只能说慕课的客户还太少,当奇葩如牛毛时,您会对工资单更加热爱。感谢,对事儿不对人。
    2019-01-09 10:46:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师