php – MySQLI Prepared Statement:num_rows&fetch_assoc

下面是一些写得不好且严重误解的 PHP代码,没有错误检查.说实话,我正在努力让我的脑袋绕着PHP-> MysqLi函数的迷宫!有人可以提供一个示例,说明如何使用预准备语句收集关联数组中的结果,同时从$stmt获取行数?下面的代码是我正在玩的东西.我认为让我失望的是在store_result之后使用$stmt值然后尝试收集一个关联数组,我不太清楚为什么……
$MysqLi = MysqLi_connect($config['host'],$config['user'],$config['pass'],$config['db']);
$stmt = $MysqLi->prepare("SELECT * FROM licences WHERE generated = ?");
$stmt->bind_param('i',$core['id']);
$result = $stmt->execute();
$stmt->store_result();

if ($stmt->num_rows >= "1") {

    while($data = $result->fetch_assoc()){ 
        //Loop through results here $data[] 
    }

}else{

    echo "0 records found";

}

我觉得有点厚颜无耻只是要求代码,但它是我的情况的工作演示,我觉得我需要最终了解实际发生了什么.太感谢了!

没错,数据库功能有点奇怪.你会到达那里.

代码看起来有点不确定,但是它是如何工作的:

建立连接,准备一个语句,绑定参数并执行它,一切都很好.

$result = $stmt->execute(); //execute() tries to fetch a result set. Returns true on succes,false on failure.
$stmt->store_result(); //store_result() "binds" the last given answer to the statement-object for... reasons. Now we can use it!

if ($stmt->num_rows >= "1") { //Uses the stored result and counts the rows.

  while($data = $result->fetch_assoc()){ 
        //And here,the answer-object is turned into an array-(object)
        // which can be worked with nicely.
        //It loops trough all entries in the array.
  }

}else{

   echo "0 records found";
}

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...