首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDO::exec还是PDO::execute?

PDO::exec还是PDO::execute?
EN

Stack Overflow用户
提问于 2014-11-10 17:07:42
回答 1查看 4.6K关注 0票数 3

我使用PDO连接到我的数据库,我不知道哪种方法比另一种方法更适合进行更新、删除和插入、PDO::exec或PDO::ex可爱。我该用哪一种?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-26 19:15:10

虽然这两种方法都有类似的命名(exec、execute),但它们应该在不同的场景中使用:

  1. exec用于获取受影响的行数。 /** *(PHP5 >= 5.1.0,PECL pdo >= 0.1.0) *执行一条>=语句,并返回受影响的行数* @link http://php.net/manual/en/pdo.exec.php * @param string $statement *要准备和执行的http://php.net/manual/en/pdo.exec.php语句。*查询中的数据应正确转义。**@ returns::exec返回由您发出的SQL语句修改或删除的行数。如果没有任何行受到影响,* PDO::exec返回0。**此函数可能*返回布尔值FALSE,但也可能返回一个非布尔值,该值*计算为FALSE。有关更多信息,请阅读关于布尔人的部分。使用=== *操作符测试此*函数的返回值。**以下示例不正确地依赖* PDO::exec的返回值,其中影响0行*的语句将导致调用die:** $db-> exec ()或die(print_r($db->errorInfo(),true);* */公共函数exec ($statement) {} 示例: $myQuery =“更新用户设置电子邮件=‘测试’”;$affectedRows = $db->exec($myQuery);
  2. 当您希望传递要在查询中绑定的参数数组时,将使用execute。 /** *(PHP5 >= 5.1.0,PECL pdo >= 0.1.0) *执行已准备好的语句* @link http://php.net/manual/en/pdostatement.execute.php *@ parameters $input_parameters可选*一个值数组,其元素数量与正在执行的绑定*参数相同。*所有值都被视为PDO::PARAM_STR。*不能将多个值绑定到单个参数;例如,不能将两个值绑定到IN() *子句中的单个命名参数。*您不能绑定比指定的值更多的值;如果* input_parameters中存在的键比PDO::then中指定的*中的键多,那么该语句将失败,并发出一个错误。**@在成功时返回真或在失败时返回假。*/公共函数执行(数组$input_parameters = null) {} 示例(当然,这也可能是UPDATEDELETE查询): $myQuery = 'SELECT * FROM username = :username';$params = array(':username‘=> 'admin');$db->query($myQuery)->execute($params);
  3. query返回一个PDOStatement对象 /** *(PHP5 >= 5.1.0,PECL pdo >= 0.2.0) *执行一条PDOStatement语句,将结果集返回为PDOStatement对象* @link http://php.net/manual/en/pdo.query.php * @param string $statement *用于准备和执行的PDOStatement语句。*查询中的数据应正确转义。**@返回PDOStatement PDO::PDOStatement对象,或失败时返回FALSE *。*/公共函数查询($statement) {}

有关更多信息,您可以访问PHP文档,或者在使用PHPStorm的情况下,可以查看PDO.php类的源代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26849105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档