query和exec区别

一、PDO::query PDO::query执行一条SQL语句,若是经过,则返回一个PDOStatement对象。PDO::query函数有个“很是好处”,就是能够直接遍历这个返回的记录集。 示例以下: $sql = 'SELECT name FROM url'; foreach ($dbh->query($sql) as $row) { print $row['name'] . "\t"; } query同传统的mysql query函数相似,一样须要对开发者自行对输入的sql语句进行安全检查。 query由于会返回PDOStament对象,彷佛用在SELECT语句执行上更合适,这跟上文提到的query支持直接遍历不谋而合。 query执行后,在下一次query执行以前,若是不取走全部返回的记录集,则query将会执行失败,除非咱们调用 PDOStatement::closeCursor()来释放数据库资源与PDOStatement对象。 原话:If you do not fetch all of the data in a result set before issuing your next call to PDO::query(), your call may fail. Call PDOStatement::closeCursor() to release the database resources associated with the PDOStatement object before issuing your next call to PDO::query(). 2、PDO::exec PDO::exec执行一条SQL语句,并返回受影响的行数。此函数不会返回结果集合。官方建议: 对于在程序中只须要发出一次的 SELECT 语句,能够考虑使用 PDO::query()。 对于须要发出屡次的语句,可用 PDO::prepare() 来准备一个 PDOStatement 对象并用 PDOStatement::execute() 发出语句。 PDO::exec支持SELECT/DELETE/UPDATE/INSERT等所有SQL语句执行,因此相比PDO query()函数功能要强大的多。因为只返回受影响的函数,因此,若是执行SELECT则没法获得PDOStatement对象,故也没法遍历结果集,只能按照官方建议去使用query或execute函数。 --------------------- 本文来自 szjljj 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/szjljj/article/details/51816938?utm_source=copymysql

相关文章
相关标签/搜索