mysqli预处理详解

2 篇文章 0 订阅

mysqli预处理的学习主要是指mysqli_stmt对象的方法的使用,下面我们通过一个例子来分析各个方法的使用方法和作用:
代码如下:

/* 连接mysql */
$mysqli = new Mysqli(DB_HOST,DB_USER,DB_PWD,DB_NAME);

if($mysqli->connect_errno){
    die('Connect Error : '.$mysqli->connect_error);
}

/* 预处理sql */
$sql = "SELECT * FROM user WHERE id>=?";

/* 获取mysqli_statement对象*/
$stmt = $mysqli->prepare($sql);

/* 绑定参数 */
$stmt->bind_param('i',$id);

/* 定义参数 */
$id = 6;

/* 执行上面的sql语句 */
if($stmt->execute()) {
    /* 
    默认select的结果集保存在mysql服务器内存中,并且通过fetch
    一条一条的返回给php,如果想在php中对该结果集进行操作,可以
    使用下面的方法,该函数内部对mysqli_statement对象的部分属
    性重置为真实的结果,例如num_rows,affected_rows等属性
    */
    $stmt->store_result();

    echo '共有'.$stmt->num_rows.'行<br >';//输出结果数

    echo '共影响'.$stmt->affected_rows.'行<br >';//输出影响行数

    /* 将结果集中的值付给对应的变量 */
    $stmt->bind_result($id,$name,$password);

    /* 移动结果集的内部指针到最后 */
    $stmt->data_seek($stmt->num_rows-1);

    /* 使用fetch一个个获取结果集中的内容 */
    while($stmt->fetch()) {
        echo '用户编号:',$id,'<br />';
        echo '用户名:',$name,'<br />';
        echo '用户密码:',$password,'<br />';
        echo '<hr />';
    }

    /* 释放由store_result产生的结果集 */
    $stmt->free_result();

    /* 关闭mysqli_statement对象 */
    $stmt->close();
}

/* close connection */
$mysqli->close();

分析:在上面的例子中几乎涵盖了预处理所有常用的方法,希望大家多思考预处理机制的原理,这样就能知道在适当的时候使用合适的方法了。

好啦,今天就说到这啦!希望大家阅读愉快,还有,请大家不要吝啬自己的意见,记得给我评论哦,一起进步,么么哒。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值