pdo::prepare-k8凯发旗舰
(php 5 >= 5.1.0, php 7, php 8, php 8,pecl pdo >= 0.1.0)
pdo::prepare — 预处理要执行的语句,并返回语句对象
说明
public pdo::prepare(string $query
, array $options
= []): pdostatement|false
为 pdostatement::execute() 方法预处理待执行的 sql 语句。 语句模板可以包含零个或多个参数占位标记,格式是命名(:name)或问号(?)的形式,当它执行时将用真实数据取代。 在同一个语句模板里,命名形式和问号形式不能同时使用;只能选择其中一种参数形式。 请用参数形式绑定用户输入的数据,不要直接字符串拼接到查询里。
调用 pdostatement::execute() 时,每一个值的参数占位标记,名称必须唯一。 除非启用模拟(emulation)模式,同一个语句里无法使用重名的参数。
note:
参数占位符仅能字面上展示完整的数据。不能是字面的一部分,不能是关键词,不能是标识符,不能是其他任意的范围。 举例说明:不能把多个值绑到单个参数里,然后在 sql 语句里用 in() 查询。
如果用不同参数,通过 pdo::prepare() 和 pdostatement::execute() 多次调用同一个 sql 语句,将提升应用的性能 —— 驱动可以让客户端/服务器缓存查询和元信息。 同时,调用 pdo::prepare() 和 pdostatement::execute() 还能阻止 sql 注入攻击,不需要给参数手动加引号与转义。
如果内置驱动不支持参数,pdo 将模拟出参数的功能;如果驱动仅仅支持其中一种风格(命名参数和问号参数两种),也会自动重写到另外一种风格。
#pdo #php