Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:先仿写, 这是必经之路
一、PHP:mysqli介绍
mysqli:只用于连接MySQL数据,可以通过query方法直接执行,也可以通过prepare()方法预处理。可以很大程度的减轻服务器端压力。
mysqli 连接四大参数:数据库的主机名: host;用户名: username;用户密码: password;默认的数据库 :dbname
1、创建一个mysqli连接对象,传入连接参数,连接数据库。
<?php //配置数据库参数 $config = [ 'host'=>'127.0.0.1', 'dbname'=>'users', 'username'=>'aaa', 'password'=>'123456', 'charset'=>'utf8', 'port'=>'3306', ]; extract($config);//将关联数组扩展为变量,键为变量名,值为数组元素的值 $mysqli = new mysqli($host, $username, $password, $dbname);//连接数据库 if($mysqli->connect_errno)die('数据库连接失败:'.$mysqli->connect_errno);//判断是否连接失败,输出失败原因 $mysqli->set_charset($charset);
2、商户信息表的增删改查操作。
1)mysqli执行query()方法后返回一个结果集对象;
2)查询操作,通过fetch_assoc()、fetch_all()、fetch_row()等方法获取数据;
3)更新、删除操作,通过affected_rows属性获取受影响的记录数.
<?php // 增加记录操作 require 'db.php'; $arr = ['茶叶2','2000',3]; array_walk($arr,function(&$item,$key,$length) { if($key < $length-1) $item = "'$item'"; },count($arr)); $data = implode(',',$arr); $sql = "INSERT `goods`(`name`,`price`,`number`)VALUES($data)"; if($mysqli->query($sql)){ if($mysqli->affected_rows>0) { echo '成功添加了',$mysqli->affected_rows.'条记录, 新增记录ID:'.$mysqli->insert_id; }else { echo '没有添加新记录'; } }else { die('添加失败'.$mysqli->errno.':'.$mysqli->error); } $mysqli->close(); echo '<hr>'; // 删除记录操作 require 'db.php'; $sql = "DELETE FROM `goods` where `id` = ".$_GET['id']; if($mysqli->query($sql)){ if($mysqli->affected_rows>0) { echo '成功删除了 id='.$_GET['id'].'的记录'; }else{ echo '没有删除记录'; } }else{ die('删除失败'.$mysqli->errno.':'.$mysqli->error); } $mysqli->close(); echo '<hr>'; // 修改记录操作 require 'db.php'; $arr = ['name'=> '茶叶888','price' => 3000]; array_walk($arr,function(&$item,$key){ $item = "`$key` = '$item'"; }); $data = implode(',',$arr); $sql = "UPDATE `goods` SET " . $data . " WHERE `id` = '1'"; if ($mysqli->query($sql)) { if($mysqli->affected_rows>0) { echo '成功更新了'.$mysqli->affected_rows.'条记录'; }else{ echo '没有更新任何记录'; } }else { die('更新失败'.$mysqli->errno.':'.$mysqli->error); } $mysqli->close(); echo '<br>'; // 查询记录操作 require 'db.php'; $sql = "SELECT `id`,`name`,`price` FROM `goods` WHERE `id` > 5"; $mysqli_result = $mysqli->query($sql); if($mysqli_result && $mysqli_result -> num_rows > 0) { $shop = $mysqli_result->fetch_all(); foreach($shops as $shop){ vprintf('<li>id:%s,商品名:%s,价格:%s</li>',$shop); } }else { echo '查询失败'; } $mysqli_result->free_result(); $mysqli->close();
四、总结:记录mysqli方式连接数据库知识,为什么要这样写?还不是很懂,只能先仿老师给出的思路。