有时您的PDO代码会产生类似Call to a member function execute()或类似的错误。甚至没有任何错误,但查询不能完全一样。这意味着您的查询无法执行。

每次查询失败,MySQL都会显示一条错误消息,说明原因。不幸的是,默认情况下,此类错误不会转移到PHP,并且您所拥有的只是上面提到的无提示或神秘的错误消息。因此,配置PHP和PDO报告MySQL错误非常重要。一旦收到错误消息,解决该问题将变得很容易。

为了获得有关该问题的详细信息,请在连接后立即在代码中添加以下行

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); ($dbh您的PDO实例变量的名称在哪里)或-更好-将此参数添加为连接选项。之后,所有数据库错误都将转换为PDO异常,如果不理会这些异常,则它们将像常规的PHP错误一样起作用。

如果发生某些特定错误,则极有可能不会引发异常。如果您的query()/ prepare()或execute()通话返回,false但没有例外,请PDO::errorInfo()像这样检查,

trigger_error("PDO errorInfo: ".$dbh->errorInfo()); 得到错误消息后,您必须阅读并理解它。听起来似乎太明显了,但是学习者经常忽略错误消息的含义。但大多数情况下,它可以很直接地说明问题:

说,如果它说一个特定的表不存在,则必须检查拼写,错字,字母大小写。另外,您还必须确保您的PHP脚本连接到正确的数据库 或者,如果显示SQL语法有错误,则必须检查SQL。问题点就在错误消息中引用的查询部分之前。 您还必须信任错误消息。如果它说令牌的数量与绑定变量的数量不匹配,那就是。缺少表或列也是如此。如果有选择,无论是您自己的错误还是错误消息是错误的,请始终坚持前者。再次听起来是屈尊的,但是这个站点上的数百个问题证明了此建议非常有用。

请注意,为了查看PDO错误,您通常必须能够查看PHP错误。为此,您必须根据站点环境配置PHP:

在开发服务器上,很容易在屏幕上显示错误,因此必须打开显示错误:

error_reporting(E_ALL); ini_set('display_errors',1); 在实时站点上时,必须记录所有错误,但永远不要显示给客户端。为此,可以这样配置PHP:

error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1); 请注意,error_reporting应始终将其设置为E_ALL。

还要注意,尽管存在常见的妄想,但错误报告无需使用try-catch。PHP将以一种更好的形式报告您的PDO错误。未捕获的异常对于开发非常有用,但是如果您要显示自定义的错误页面,仍然不要为此使用try catch,而只需设置自定义错误处理程序即可。简而言之,您不必将PDO错误视为特殊错误,而是将它们视为代码中的任何其他错误。

PS 有时没有错误,但也没有结果。那就意味着,没有符合您条件的数据。因此,即使您可以保证数据和标准都正确,您也必须承认这一事实。他们不是。您必须再次检查它们。我有一篇文章,《如何调试与PDO的数据库交互》,可以对此提供帮助。只需按照此说明逐步进行操作,即可解决您的问题或对堆栈溢出有一个可解答的问题。来源:stack overflow

php pdo 判断数据条数据,php pdo 查询记录条数据库相关推荐

  1. mongodb count查询记录条数

    2019独角兽企业重金招聘Python工程师标准>>> count查询记录条数 使用count()方法查询表中的记录条数,例如,下面的命令查询表users的记录数量: db.user ...

  2. mysql查询数据不变_mysql之delete删除记录后数据库大小不变

    当DELETE后面跟条件的时候,则就会出现这个问题 delete from table_name where 条件 删除数据后,数据表占用的空间大小不会变. 不跟条件直接delete的时候. dele ...

  3. mybatis查询记录条数

    这几天在学SSM框架,今天在SSM框架中根据某个条件查询mysql数据库中的记录条数,碰到一些问题,记录一下 User.xml <select id="userNameValidate ...

  4. sql 查询记录条数

    --查询条数 SELECT rows FROM sysindexes WHERE id = OBJECT_ID('PerCardPositionHist') AND indid < 2

  5. 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  6. es解决只能查询10000条数据方案

    引言 在使用es进行数据查询时,由于es官方默认限制了索引一次性最多只能查询10000条数据,查询第10001条数据开始就会报错, 错误的内容大致为:Result window is too larg ...

  7. MySQL1000万条数据分页查询优化

    概述 今天一个朋友问我一个问题,说MySQL很多数据查询怎么优化.我就直接说了个分页查询就行了啊,查询字段加索引.然而结果并没有我想象得那么简单,他分页查询直接把服务查崩了.原来他们数据量已经有好几百 ...

  8. 增大max_result_window是错的,ES只能查询前10000条数据的正确解决方案

    文章目录 1.问题现象描述 2.错误的解决方案 2.1 使用`max_result_window`的错误解决方案 2.2 官方对`max_result_window`参数的解释 2.3 官方推荐的解决 ...

  9. SQL Server 新增数据表数据

    新增数据表数据 1. DML是数据库的操纵语言 ,使用DML方便了用户操作数据库数据 INSERT语句,用于新增记录到数据库表: 2. INSERT语句 新增表数据时所有字段都需要赋值的话,字段名可以 ...

最新文章

  1. 重磅丨国资委下发通知,加快推进国有企业数字化转型
  2. css之其它技巧和经验列表
  3. 计算机组成原理——数据表示、运算与校验1
  4. php发送邮件,标题是乱码,php的mail函数发送UTF-8编码中文邮件时标题乱码怎么办?...
  5. 4. HTML表单标签
  6. thrift使用传输协议TCompactProtocol - xiaoshe的专栏 - 博客频道 - CSDN.NET
  7. 给 Sublime Text3 添加右键菜单
  8. latex textbf没有用_把知乎改造成LaTex创作平台
  9. 2021最新文本综述:从浅层到深度学习(附PDF下载)
  10. 高等数学学习笔记——高等数学(二)学习笔记汇总
  11. 网页内容变化实时监控提醒(多个复杂的监控条件)
  12. AGV路径规划方法——A*算法
  13. Antigen Detector(新冠试剂盒检测)
  14. JAVA版微信支付V3—JSAPI支付
  15. 华为设备配置静态路由与NQA联动
  16. utf-8 和gbk 编码区别
  17. 更新网卡后蓝牙无法删除亦无法连接问题
  18. 月薪13k的腾讯测试岗,面试原来这么简单
  19. 程序员V.S.编程语言你上“贼船”了吗
  20. Android初学之十七:使用LitePal操作数据库

热门文章

  1. ui设计和python哪个容易学_UI设计与平面设计哪个好学呢?
  2. oracle客户端 安装报错,Oracle 11g客户端安装在构建客户机共享库报错
  3. vs 选定内容没有属性页_【产品分析】从搜索功能看产品定位:抖音VS快手
  4. 书小宅之网页设计CSS3——圆角矩形
  5. Odoo与浪潮合资研发PS Cloud之如何进行讨论
  6. 发布 听打速录测试智能评分软件个人版
  7. 【CSDN软件工程师能力认证学习精选】 什么是前端工程化?
  8. 吴恩达机器学习(一)机器学习的入门介绍
  9. Windows 2008 如何开启并使用Windows Vista的主题
  10. TJamie-阅读作业2