PHP
数据库 | Database

PDO::exec

PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO :: exec - 执行一条SQL语句并返回受影响的行数

描述

public int PDO::exec ( string $statement )

PDO :: exec()在单个函数调用中执行SQL语句,返回受该语句影响的行数。

PDO :: exec()不返回SELECT语句的结果。对于只需在程序期间执行一次的SELECT语句,请考虑发布PDO :: query()。对于需要多次发出的语句,请使用PDO :: prepare()准备一个PDOStatement对象,并使用PDOStatement :: execute()发出该语句。

参数

statement

在准备与执行阶段的SQL语句。

查询中的数据应正确转义。

返回值

PDO :: exec()返回您发布的SQL语句修改或删除的行数。如果没有行受到影响,PDO :: exec()返回0

警告

该函数可能返回布尔值FALSE,但也可能返回一个非布尔值,其值为FALSE。有关更多信息,请阅读布尔部分。使用===运算符来测试此函数的返回值。

以下示例错误地依赖于PDO :: exec()的返回值,其中一个影响0行的语句导致对die()的调用:

<?php $db->exec() or die(print_r($db->errorInfo(), true) // incorrect ?>

示例

示例#1 运用DELETE语句

计算被没有WHERE子句的DELETE语句删除的行数。

<?php $dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2' /* Delete all rows from the FRUIT table */ $count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'" /* Return number of rows that were deleted */ print("Deleted $count rows.\n" ?>

上面的例子将输出:

Deleted 1 rows.

扩展内容

  • PDO :: prepare() - 准备执行语句并返回一个语句对象

  • PDO :: query() - 执行一条SQL语句,返回一个结果集作为PDOStatement对象

  • PDOStatement :: execute() - 执行准备好的语句

← PDO::errorInfo

PDO::getAttribute →