在看pdo手册的时候,有个疑问,为什么有了pdo类,有query,exec等方法,能进行增删改查,为什么还要有pdostatement类,网上查资料后明白了两者的区别和作用,总结如下:
- pdo直接调用query方法后,返回的是有一个pdostatement对象,可用该对象中fetch,fetchall等方法操作结果集。
- pdo先调用prepare方法,返回的也是一个pdostatement对象,他代表一个预处理语句,这时并未执行该sql语句,在调用pdostatement::execute()方法才真正执行。
相比较而言,第二种方法进行了sql语句预处理,进行参数绑定,防止了sql注入攻击的风险。
网友评论