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.