由于既然写就把不懂的捣鼓明白,这也是我一直有的问题,可能是个假程序猿,强迫自己去搞明白。
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
);