您现在的位置是:群英 > 开发技术 > PHP语言
PHP的prepare语句怎样使用,有什么要注意的?
Admin发表于 2022-02-10 09:16:05814 次浏览

    这篇文章我们来了解PHP的prepare语句的使用,在php中“PDO::prepare”表示准备要执行的语句,并返回语句对象,下文有详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!

    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑

    php prepare的用法是什么?

    PDO::prepare

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

    PDO::prepare — 准备要执行的语句,并返回语句对象

    说明

public PDO::prepare(string $statement, array $driver_options = array()): PDOStatement

    为 PDOStatement::execute() 方法准备待执行的 SQL 语句。 语句模板可以包含零个或多个参数占位标记,格式是命名(:name)或问号(?)的形式,当它执行时将用真实数据取代。 在同一个语句模板里,命名形式和问号形式不能同时使用;只能选择其中一种参数形式。 请用参数形式绑定用户输入的数据,不要直接字符串拼接到查询里。

    调用 PDOStatement::execute() 时,每一个值的参数占位标记,名称必须唯一。 除非启用模拟(emulation)模式,同一个语句里无法使用重名的参数。

    注意:

    参数占位符仅能字面上展示完整的数据。不能是字面的一部分,不能是关键词,不能是标识符,不能是其他任意的范围。 举例说明:不能把多个值绑到单个参数里,然后在 SQL 语句里用 IN() 查询。

    如果用不同参数,通过 PDO::prepare() 和 PDOStatement::execute() 多次调用同一个 SQL 语句,将提升应用的性能 —— 驱动可以让客户端/服务器缓存查询和元信息。 同时,调用 PDO::prepare() 和 PDOStatement::execute() 还能阻止 SQL 注入攻击,不需要给参数手动加引号与转义。

    如果内置驱动不支持参数,PDO 将模拟出参数的功能;如果驱动仅仅支持其中一种风格(命名参数和问号参数两种),也会自动重写到另外一种风格。

注意: The parser used for emulated prepared statements and for rewriting named or question mark style parameters supports 
the non standard backslash escapes for single- and double quotes. That means that terminating quotes immediately preceeded 
by a backslash are not recognized as such, which may result in wrong detection of parameters causing the prepared statement 
to fail when it is executed. A work-around is to not use emulated prepares for such SQL queries, and to avoid rewriting of 
parameters by using a parameter style which is natively supported by the driver.

    参数

    statement

    必须是对目标数据库服务器有效的 SQL 语句模板。

    driver_options

    数组包含一个或多个 key=>value 键值对,为返回的 PDOStatement 对象设置属性。 常见用法是:设置 PDO::ATTR_CURSOR 为 PDO::CURSOR_SCROLL,将得到可滚动的光标。 某些驱动有驱动级的选项,在 prepare 时就设置。

    返回值

    如果数据库服务器完成准备了语句, PDO::prepare() 返回 PDOStatement 对象。 如果数据库服务器无法准备语句, PDO::prepare() 返回 false 或抛出 PDOException (取决于 错误处理器)。

    注意:

    模拟模式下的 prepare 语句不会和数据库服务器交互,所以 PDO::prepare() 不会检查语句。

    范例

    示例 #1 命名参数形式的 SQL 语句模板

prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

    示例 #2 问号形式的 SQL 语句模板

prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?'); $sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>

    关于PHP的prepare语句的使用就介绍到这,上述示例对大家学习prepare语句有一定的借鉴价值,感兴趣的朋友可以参考。想要了解更多大家可以关注群英网络其它的相关文章。

文本转载自PHP中文网

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: php的prepare
)
相关信息推荐
2022-04-28 14:07:50 
摘要:给大家带来一篇关于python自定义模块的注意点的相关教程文章,内容涉及到Python、python教程等相关内容,更多关于python的内容希望能够帮助到大家。
2022-07-30 17:24:23 
摘要:vue中的webpack用node包管理器“npm”或npm镜像“cnpm”来安装。webpack是一个用于现代JavaScript应用程序的静态模块打包工具,是基于node.js开发的,使用时需要有node.js组件支持;需要使用npm或者cnpm进行安装,语法“npm install webpack -g”或“cnpm install webpack -g”。
2022-01-20 19:44:39 
摘要:这篇文章给大家分享的是PHP怎样实现日程提醒功能的方法,日程提醒功能能在指定的时间发送消息提醒,还是比较使用的一个功能,那么如何才能用PHP语言来自动化实现这么一个功能呢?文中示例代码介绍的非常详细,对大家学习PHP有一定的帮助,感兴趣的朋友接下来一起跟随小编了解看看吧。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部