首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PDO::execute始终返回FALSE,但查询成功

问题描述:PDO::execute始终返回FALSE,但查询成功。

答案: PDO是PHP中用于访问数据库的扩展模块,它提供了一种统一的接口来连接和操作不同类型的数据库。PDO::execute是用于执行预处理语句的方法,它返回一个布尔值,表示执行是否成功。

当PDO::execute返回FALSE,但查询却成功时,可能有以下几个原因:

  1. SQL语句错误:PDO::execute执行的是预处理语句,如果预处理语句中的SQL语句有错误,执行就会失败。可以通过打印出SQL语句并在数据库中直接执行来检查语法错误。
  2. 绑定参数错误:在执行预处理语句之前,需要将参数绑定到占位符上。如果参数绑定错误,执行也会失败。可以检查参数绑定的顺序和类型是否正确。
  3. 数据库连接错误:PDO::execute执行时需要连接到数据库,如果数据库连接有问题,执行也会失败。可以检查数据库连接的配置和连接状态。
  4. 数据库操作权限不足:如果数据库用户没有足够的权限执行查询操作,执行也会失败。可以检查数据库用户的权限设置。

推荐的腾讯云相关产品:腾讯云数据库MySQL

腾讯云数据库MySQL是腾讯云提供的一种高性能、可扩展的关系型数据库服务。它基于MySQL社区版,提供了自动备份、容灾、监控等功能,支持主从复制、读写分离、分布式部署等特性,适用于各种规模的应用场景。

产品介绍链接地址:https://cloud.tencent.com/product/cdb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【译】现代化的PHP开发--PDO

无论使用PDO::exec运行什么查询成功时都会返回受影响的行数。失败时还返回false。...所以我们应该要有像如下的示例代码来验证是否运行查询成功: if (FALSE === $dbh->exec('INSERT INTO customers VALUES (1, "Andy")')) {...因为PDO::query在成功时将结果集作为PDOStatement 对象返回(失败时将返回布尔值false,如果要验证,请执行与PDO::exec类似的检查)。...注意在foreach中,它在绑定值之后使用相同的语句执行查询。PDOStatement::execute执行失败返回false。...几乎不可能涵盖本主题的每一个方面,始终记住,当您有疑问时,可以参考官方手册页。 4.1、Fetch 方法: 我们讨论过了一个(PDOStatement::fetch)用于检索结果集的获取方法。

1.9K00

从宽字节注入认识PDO的原理和正确使用

众所周知,PDO是php中防止SQL注入最好的方式,并不是100%杜绝SQL注入的方式,关键还要看如何使用。...PDO查询语句可控存在的安全问题: 首先在本地新建一个库和表,随便写点东西。 ? 然后写一个test.php,用PDO进行简单的查询: <?...PDO默认设置存在的安全隐患: 如果我们在查询语句中没有可控的参数,并把输入的参数按照prepare->bindParam->execute的方式去写就一定没有问题了吗?...我们会发现select * from table1成功执行了,尽管PDO只会返回一个结果,但是它的的确确执行了。 也就是说,即使查询语句里没有可控参数,只有?...我们将PDO::ATTR_EMULATE_PREPARES设为false,来看看sql语句到底执行了什么: ?

1.3K10

PHP-PDO介绍

−>exec(sql),执行数据增、删、改语句,执行成功返回受影响的记录数,如果SQL语句错误返回false。...$pdo->errorInfo()[2]; } 1.5.2 执行数据查询语句 方法:pdo−>query(pdo->query(pdo−>query(sql),返回的是PDOStatement对象 <...in'"); //查看转出的账号是否大于0,大于0返回true,否则返回false $stmt=$pdo->query("select balance from bank where cardid...(); */ //方法二:数组的下标和参数名一致的时候就可以直接传递关联数组 $stmt->execute($card); } 小结: 1、?...、单例模式 2、初始化参数 3、连接数据库 4、执行增删改 5、执行查询 ​ a)返回二维数组 ​ b)返回一维数组 ​ c)返回一行一列 1.7.2 代码实现 第一部分:单例、初始化参数、实例化PDO

2.4K21

PHP中的PDO操作学习(二)预处理语句及事务

预处理语句功能 预处理语句就是准备好一个要执行的语句,然后返回一个 PDOStatement 对象。一般我们会使用 PDOStatement 对象的 execute() 方法来执行这条语句。...相比直接使用 PDO 对象的 query() 或者 exec() 来说,预处理的效率更高,它可以让客户端/服务器缓存查询和元信息。...在代码中,我们使用这一条 SQL 语句,通过替换不同的占位符内容,实现了两次查询。 prepare() 方法的第二个参数是为返回的 PDOStatement 对象设置的属性。..., [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]); $stmt->execute(['aaa']); $aUser = $stmt->fetchAll();...$pdo->exec("insert into tran_innodb (name, age) values ('Joe', 12)"); // 成功插入 $pdo->exec("insert into

97100

PHP中的PDO操作学习(四)查询结构集

PHP中的PDO操作学习(四)查询结构集 关于 PDO 的最后一篇文章,我们就以查询结果集的操作为结束。在数据库的操作中,查询往往占的比例非常高。...和 mysqli 一样,PDO 对于查询的支持也是非常方便快捷的,通过几个函数就可以非常方便高效地操作各种查询语句。...在使用预处理语句的情况下,我们使用 execute() 执行之后,查询的结果集就会保存在 PDOStatement 对象中。...查询语句返回行数 需要注意的是,在查询语句中,有些数据是可能返回此语句的行数的。这种方式不能保证对所有数据有效,且对可移植的应用更不要依赖这种方式。...这一点我们也在 PDO 相关的第一篇文章中就说过了,对于业务来说,这种更新或删除到底算是成功还是失败呢?还是大家根据自己的实际业务情况来确定吧!

1.1K20

PHP PDOStatement::bindColumn讲解

mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] ) 安排一个特定的变量绑定到一个查询结果集中给定的列...注意:在语句执行前 PDO 有关列的信息并非总是可用,可移植的应用应在PDOStatement::execute()之后调用此函数(方法)。...但是,当使用 PgSQL 驱动时,要想能绑定一个 LOB 列作为流,应用程序必须在调用PDOStatement::execute()之前 调用此方法,否则大对象 OID 作为一个整数返回。...如果使用列名,注意名称应该与由驱动返回的列名大小写保持一致。 param 将绑定到列的 PHP 变量名称 type 通过 PDO::PARAM_* 常量指定的参数的数据类型。...返回成功返回 TRUE, 或者在失败时返回 FALSE。 实例 把结果集输出绑定到 PHP 变量 绑定结果集中的列到PHP变量是一种使每行包含的数据在应用程序中立即可用的有效方法。

54321

PHP中的PDO操作学习(二)预处理语句及事务

预处理语句功能 预处理语句就是准备好一个要执行的语句,然后返回一个 PDOStatement 对象。一般我们会使用 PDOStatement 对象的 execute() 方法来执行这条语句。...相比直接使用 PDO 对象的 query() 或者 exec() 来说,预处理的效率更高,它可以让客户端/服务器缓存查询和元信息。...在代码中,我们使用这一条 SQL 语句,通过替换不同的占位符内容,实现了两次查询。 prepare() 方法的第二个参数是为返回的 PDOStatement 对象设置的属性。...$pdo->exec("insert into tran_innodb (name, age) values ('Joe', 12)"); // 成功插入 $pdo->exec("insert into...在没有事务的情况下,我们第一条数据是会正常插入成功的,这并不是我们需要的结果。在这时,就需要事务能力的帮助,让我们能够让两个表要么同时成功,要么同时失败。

97210
领券