PDO::exec

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

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

说明

PDO::exec ( string $statement ) : int

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

PDO::exec() 不会从一条 SELECT 语句中返回结果。对于在程序中只需要发出一次的 SELECT 语句,可以考虑使用 PDO::query()。对于需要发出多次的语句,可用 PDO::prepare() 来准备一个 PDOStatement 对象并用 PDOStatement::execute() 发出语句。

参数

statement

要被预处理和执行的 SQL 语句。

查询中的数据应该被 妥善地转义

返回值

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

Warning

此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。

下面例子依赖 PDO::exec() 的返回值是不正确的,其中受影响行数为 0 的语句会导致调用 die()

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

范例

Example #1 发出一条 DELETE 语句

计算由一条不带 WHERE 字句的 DELETE 语句删除的行数。

<?php
$dbh 
= new PDO('odbc:sample''db2inst1''ibmdb2');

/*  删除 FRUIT 数据表中满足条件的所有行 */
$count $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");

/* 返回被删除的行数 */
print("Deleted $count rows.\n");
?>

以上例程会输出:

Deleted 1 rows.

参见

相关文章
php mysql 函数 转义 sql 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集php oci8 函数 返回语句执行后受影响的行数php oci8 函数 配置 oracle 语句预备执行php oci8 函数 返回 oci 语句的类型php pcntl 函数 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。php postgresql 函数 将关联的数组值转换为适合 sql 语句的格式。php 程序执行函数 关闭由 proc open 打开的进程并且返回进程退出码php mysqli 返回最近执行的 sql 语句的信息php mysqli 准备执行一个 sql 语句php pdo 执行一条 sql 语句,并返回受影响的行数php pdo 返回最后插入行的id或序列值php pdo 准备要执行的语句,并返回语句对象php pdo 执行 sql 语句,以 pdostatement 对象形式返回结果集php sqlite pdo registers an aggregating user defined function for use in sql statementsphp pdostatement 执行一条预处理语句php pdostatement 返回受上一个 sql 语句影响的行数php ms sql server pdo connecting to microsoft sql server and sybase databasesphp pdo 驱动 microsoft sql server and sybase functions pdo dblib php ms sql server pdo connecting to ms sql server and sql azure databasesphp pdo 驱动 microsoft sql server functions pdo sqlsrv
关注编程学问公众号