参数绑定

除了使用原生 SQL 以外,大多数情况下无需进行手动绑定,系统会在查询和写入数据的时候自动使用参数绑定。

ginkgo 支持占位符绑定,可以使用 bind 方法绑定参数,例如:

  1. Db::prepare('insert into user (name) values (:name)');
  2. Db::bind('name', 'baigo', 'str');
  3. Db::execute();

bind 方法说明

  1. function bind( $bind [, $value [, $type]] )

参数

  • bind 名称:

    支持两种类型:字符串、数组

  • value

    bind 为字符串时为必须,当 bind 为数组时自动忽略。

  • type 类型

    为空时自动识别类型,当 bind 为数组时自动忽略。

    可能的值

    | 值 | 描述 | | - | - | | str(默认值) | 字符串 | | int | 整数 | | float | 浮点数 | | double | 数字 | | bool | 布尔值 |


批量绑定

支持批量绑定参数,例如:

  1. $bind = array(
  2. // array('名称', '值', '类型'),
  3. array('id', 8),
  4. array('name', 'baigo'),
  5. );
  6. Db::prepare('insert into user (id, name) values (:id, :name)');
  7. Db::bind($bind);
  8. Db::execute();

其他方法

execute 方法也支持绑定参数,用法与 bind 方法相同,例如:

  1. $bind = array(
  2. array('id', 8),
  3. array('name', 'baigo'),
  4. );
  5. Db::prepare('insert into user (id, name) values (:id, :name)');
  6. Db::execute($bind);

prepare 方法也支持绑定参数,用法与 bind 方法类似,例如:

  1. // 单个绑定
  2. Db::prepare('insert into user (name) values (:name)', 'name', 'baigo', 'str');
  3. Db::execute();
  4. // 批量绑定
  5. $bind = array(
  6. array('id', 8),
  7. array('name', 'baigo'),
  8. );
  9. Db::prepare('insert into user (id, name) values (:id, :name)', $bind);
  10. Db::execute();