由于既然写就把不懂的捣鼓明白,这也是我一直有的问题,可能是个假程序猿,强迫自己去搞明白。
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() | 获取预处理语句结果的每条记录,并将相应的字段赋给绑定结果 |
上面用到的方法名和介绍。
菜鸟一个,如有不对,敬请指点。ヾ(◍°∇°◍)ノ゙