zoukankan      html  css  js  c++  java
  • thinkphp中的参数绑定

    参数绑定是指绑定一个参数到预处理的SQL语句中的对应命名占位符或问号占位符指定的变量,并且可以提高SQL处理的效率,需要数据库驱动类的支持,目前只有PDO和Sqlsrv驱动支持参数绑定功能。

    1、手动绑定:

    1. $Model = M('User');
    2. $where['name'] = ':name';
    3. $list = $Model->where($where)->bind(':name',I('name'))->select();
    4. 把I方法获取到的name赋值给':name';查询name=I(‘name’)的结果,当然也可以直接赋值不用I方法获取。

    目前不支持?方式进行占位符,无论是PDO还是Sqlsrv驱动均统一使用 :var 方式进行占位符,驱动内部会自动进行处理。

    ② 还可以支持指定绑定变量的类型参数:

    1. $list = $Model->where($where)->bind(':id',I('id'),PDO::PARAM_INT)->select();

    ③批量绑定:

    1. $where['id'] = ':id';
    2. $where['name'] = ':name';
    3. $bind[':id'] = array(I('id'),PDO::PARAM_INT);
    4. $bind[':name'] = array(I('name'),PDO::PARAM_STR);
    5. $list = $Model->where($where)->bind($bind)->select();

    2、自动绑定:不支持指定绑定变量的类型参数

    需要开启DB_BIND_PARAM配置参数:'DB_BIND_PARAM'=>TRUE;那么一下代码和上面的批量绑定代码等效,

    1. $Model->name = ':name';
    2. $Model->id = ':id';
  • 相关阅读:
    linux学习 建立静态库,动态库,写简单的makefile
    C++中顶层const和底层const
    BDB (Berkeley DB)数据库简单介绍(转载)
    Java中Map的使用
    Spring MVC 3 深入总结
    nvl,空时的推断和取值
    java堆栈 (转)
    mybatis--面向接口编程
    HDU 4888
    socket编程——一个简单的样例
  • 原文地址:https://www.cnblogs.com/dongtong/p/4853615.html
Copyright © 2011-2022 走看看