boaPHP开发手册v5.5

预处理查询

预处理查询对于批量查询性能较好

初始化语句

有结果集的预处理查询类初始化:


$stmt = boa::db()->stmt_query("SELECT * FROM @bs_news WHERE id = ?");

无结果集的预处理查询类初始化:


$stmt = boa::db()->stmt_execute('UPDATE @bs_news SET title = ?, content = ? WHERE id = ?');

参数类型

绑定参数时,每个参数需要指定一个类型,没有指定的默认为s,将其按次序拼接成一个字符串。主要有以下4个类型:

  • i :整型(integer)
  • d :双精度浮点型(double)
  • b :二进制大对象(blob)
  • s :字符串型(string)

批量查询

准备好一次SQL模板,可以循环使用execute()绑定参数并执行


$data = [
	[1, 'Title1', 'Content1'],
	[2, 'Title2', 'Content2'],
	[3, 'Title3', 'Content3']
];

$stmt = boa::db()->stmt_execute('INSERT INTO @bs_news (id, title, content) VALUES (?, ? ,?)');
foreach($data as $v){
	$stmt->execute($v, 'iss'); // 第二个参数为变量的参数类型按次序拼接
}

获取查询结果

all()方法可以获得整个查询结果,one()方法仅获取一条记录


$stmt = boa::db()->stmt_query('SELECT * FROM @bs_news WHERE cid = ?');
$stmt->execute([10], 'i');
$arr = $stmt->all();