这里有歧义、有问题、还有........

这里有歧义、有问题、还有........

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

  1. sql语句不加 分号为啥能使用?

  2. mysql_fetch_assoc()当有数据时返回的是数组如果没有数据则是bool值吧?那么这里的代码是不是应该加上一个判断is_array()的判断?

  3. 还有关于这个别名total 的问题,如果不加别名是不是没办法 直接从数组中使用该值?mysqli 也同样试用么?

  4. 最后 我再次 又 无力吐槽 你们的坑人 铁斧子 你们弃之不用的 为啥又用的津津乐道?不如讲讲PDO吧?

正在回答

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

2回答

您好,当数据库中没有数据时返回的是数组0,而不是false。同学可以输出一下$result的结果。祝学习愉快!

  • 轩辕小齐V 提问者 #1
    您说的对,但isset 不为认为array() 是FALSE 而是TRUE。
    2018-12-18 14:04:44
  • 好帮手慕查理 回复 提问者 轩辕小齐V #2
    您好,理解您的意思是了。是指当返回的数组数据为0时应该可以注册用户的,但是isset判断时会认为存在数据而提示用户已存在。不会的哦~这段判断完整的代码是if(isset($result['total']) && $result['total'] > 0){},有对返回的数据进行判断。祝学习愉快!
    2018-12-18 16:01:02
好帮手慕查理 2018-12-16 14:42:56

您好,1.SQL语句在cmd中加;是为了表示语句结束,但在此处则不需要了。

2.返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。如果没有找到相同的用户返回值则是Array ( [total] => 0 ),因此之后的判断就可以。

3.如果没有添加别名结果为Array ( [COUNT( `id` )] => 0 )。可以直接判断COUNT( `id` )。mysqli同样适用。祝学习愉快!

  • 提问者 轩辕小齐V #1
    关于mysqli_fetch_assoc()这个的问题,您还是好好想想吧,我的数据库一开始没有数据,返回的肯定是bool值,视频里老师的数据库里面有值,所以不会出现这个问题。当出现bool值时,isset()判断就会出现问题因为解析后数组会是一个空数组,但isset 会认为空数组依然是被"设置了",所以代码有问题
    2018-12-18 11:39:20
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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