关于事务与预处理的问题,感谢!
由于视频里的老师没有讲清楚,请问$stmt->bind_result(),参数的顺序就是数据库字段的顺序?按照数据表从左至右的顺序?
此外while语句中的$data[],之前并没有声明,老师为啥没有报错?我记得曾经问过类似的,老师说需要设置,但是我问在哪设置,老师只说了在php.ini 里设置具体在哪里能告知下么?如果是我理解错了那么默认情况下while、if、switch 、for语句里面的变量就是全局的?
我又结合下预处理下面是代码,麻烦老师看看代码逻辑有没有错误,谢谢!
特别的mysqli->affected_rows 当查询的时候 影响的条数 是不是就是指得 查询的条数?
$stmt->bind_result()与$stmt->bind_param()的顺序可以更改么?
$mysqli->commit()之后才是真正的执行,所以如果要打印出$data,就需要在该语句之后?
感谢!$mysqli = new mysqli("localhost", 'root', "", "imooc_mall"); $mysqli->query("SET NAMES UTF8"); //开启事务 $mysqli->autocommit(false); //预处理 $stmt = $mysqli->prepare("SELECT * FROM `test` WHERE `id`=?"); $id = 2; //绑定参数 $stmt->bind_param('i', $id); //绑定结果集 $stmt->bind_result($id, $name, $age); //执行 $stmt->execute(); $mysqli->affected_rows; if (!$mysqli->affected_rows > 0) { $mysqli->rollback(); } $data[]=null; while ($stmt->fetch()) { $data[] = [ 'id' => $id, 'name' => $name, 'age' => $age ]; } $mysqli->commit(); var_dump($data);
正在回答 回答被采纳积分+1
您好,同学上次最后提问时间是:
在回答中已经进行了回复:
1.如果$stmt->bind_result($id,$name,$age),这个可以改变顺序,就必须让$id 的id 与字段名一致?不然顺序变了id的值到了name上?
是,例如语句为$stmt->bind_result($id,$name,$age),但是字段的顺序为name,id,age。那么$id会绑定在name字段上。
2.while、if、switch 、for语句里面的变量 的作用域是全局还是局部啊?
while、if、switch 、for语句里面的变量作用域是全局。
3.$stmt->bind_result()与$stmt->bind_param()的顺序可以更改么?这里我的意思不是第五个问题的参数的顺序,而是这两条语句都是预编译的语句,在实际代码里顺序相互颠倒可以么?
先操作bind_param将变量绑定到预准备语句作为参数,然后再是bind_result将变量绑定到用于结果存储的预准备语句。
祝学习愉快!
您好,1.bind_result的参数顺序可以改变。同学运行时改变参数顺序取出的顺序错误?请截图反馈。
2.链接如下:http://class.imooc.com/course/qadetail/77903
3.可以使用。
5.同学说的是bind_result参数可以改变吗?可以改变。
4.commit提交事务,同学所说的最后指的是哪?是所有代码的最后,还是事务处理的最后。具体放在哪是根据代码决定的。
祝学习愉快!
您好,1.顺序改变也可以查询数据,可以将课程代码中变量位置改变测试。
2.$data数组在循环进行了定义,并不会产生错误。循环中的变量是全局的。关于php.ini文件修改之前的回答中已表明修改哪出http://class.imooc.com/course/qadetail/77903
3.代码中`id`=?中?应为英文状态下字符。代码中检测查询数量的函数并没有起作用。可以判断execute()是否执行成功,失败则回滚。但查询时很少使用事务操作。
4.是查询的条数。
5.bind_result参数顺序可以改变。bind_param参数顺序不可以改变。
6.语句$data在查询fetch语句之后。
祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星