由于既然写就把不懂的捣鼓明白,这也是我一直有的问题,可能是个假程序猿,强迫自己去搞明白。
stmt介绍:
MySQL从4.1版本开始提供了一种名为预处理语句(prepared statement)的机制。它可以将整个命令向MySQL服务器发送一次,以后只有参数发生变化,MySQL服务器只需对命令的结构做一次分析就够了。这不仅大大减少了需要传输的数据量,还提高了命令的处理效率。可以用mysqli扩展模式中提供的mysqli_stmt类的对象,去定义和执行参数化的SQL命令。
那上篇文章中举例:
//需要执行的sql
$sql = "select member_miniapp_id,member_id from wxb_member_miniapp where member_miniapp_id=$member_miniapp_id";
//定义一个数组
$zxList = array();
//sql语句:$mysqli_dandu->prepare($sql)
if ($stmt = $mysqli_dandu->prepare($sql)) {
// 处理打算执行的SQL命令
$stmt->execute();
// 输出查询的记录个数
$stmt->bind_result($member_miniapp_id, $member_id);
// 当查询结果绑定到变量中
while ($stmt->fetch()) {
$zxList[] = array(
"member_miniapp_id" => $member_miniapp_id,
"member_id" => $member_id
);
}
}
咱们打印一下$zxList这个数组:
这就是打印出来的数组。
bind_result() |
预处理语句执行查询之后,利用该方法将变量绑定到所获取的字段 |
execute() |
执行准备好的预处理语句 |
prepare() |
无论是绑定参数还是绑定结果,都需要使用 该方法准备要执行的预处理语句 |
fetch() |
获取预处理语句结果的每条记录,并将相应的字段赋给绑定结果 |
上面用到的方法名和介绍。
菜鸟一个,如有不对,敬请指点。ヾ(◍°∇°◍)ノ゙