PDO提供对预处理语句的支持。
预处理语句是预先将一个预处理的sql语句发送到数据库服务器,执行其他sql语句只是修改预处理语句里对应的参数。简单的说,就是将sql语句强制一分为二:第一部分为前面相同的命令和结构部分,第二部分为后面可变的数据部分。预处理语句,可以减轻数据库服务器压力。
MySQL定义预处理语句
使用prepare()方法执行sql预处理语句,得到一个PDOStatement实例,sql预处理语句通常有如下两种定义方式:
命名参数:自定义的有意义的字符串作为命名参数,前面加上冒号。insertintotable_name(name,password,email)values(:name,:password,:email)
问号数据占位符:使用“?”作为参数。insertintotable_name(name,password,email)values(?,?,?)
绑定参数
往预处理语句绑定参数有三种方法:
bindParam()方法一个一个绑定,绑定完成执行execute()方法使之生效。bindValue()方法一个一个绑定,绑定完成执行execute()方法使之生效。直接使用execute()方法传递一个数组,命名参数使用关联数组,数据占位符使用索引数组。?phpechopre;$dbms=mysql;$server=localhost;$username=root;$password=;$dbname=account_pdo_db;$dsn=$dbms:host=$server;dbname=$dbname;try{$pdo=newPDO($dsn,$username,$password);echoPDO连接MySQL数据库服务器成功;//数据占位符$pre=$pdo-prepare(insertintoaccount(username,password,email)values(?,?,?));$name=Peter;$pwd=;$pre-bindParam(1,$name);$pre-bindValue(2,$pwd);$pre-bindValue(3,Peter
example.