Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:发现错了, 是好事, 特别是学习阶段 , 如果一次对, 通常会掩盖真相, 你都不知道怎么就一次性对了, 不是吗?
任何增删改查都是基于数据表进行的,没有数据,就无法进行,现在我们来新建一张表,对表进行操作
如下
示例:
// 增加操作
require 'connect.php';
$arr = ['橘子','夏季',999];
array_walk($arr,function(&$item,$key,$length) {
if($key < $length-1) $item = "'$item'";
},count($arr));
$data = implode(',',$arr);
$sql = "INSERT `goods`(`name`,`category`,`price`)VALUES($data)";
if($mysqli->query($sql)){
if($mysqli->affected_rows>0) {
echo '成功添加了',$mysqli->affected_rows.'条记录,新增
记录ID:'.$mysqli->insert_id;
}else {
echo '没有添加新记录';
}
}else {
die('添加失败'.$mysqli->error.':'.$mysqli->error);
}
$mysqli->close();
echo '<br>';
// 删除操作
require 'connect.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->error.':'.$mysqli->error);
}
$mysqli->close();
echo '<br>';
// 修改
require 'connect.php';
$arr = ['name'=> '梨子','price' => 19];
array_walk($arr,function(&$item,$key){
$item = "`$key` = '$item'";
});
$data = implode(',',$arr);
$sql = "UPDATE `goods` SET " . $data . " WHERE `id` = '5'";
if ($mysqli->query($sql)) {
if($mysqli->affected_rows>0) {
echo '成功更新了'.$mysqli->affected_rows.'条记录';
}else{
echo '没有更新任何记录';
}
}else {
die('更新失败'.$mysqli->error.':'.$mysqli->error);
}
$mysqli->close();
echo '<br>';
// 查询操作
require 'connect.php';
$sql = "SELECT `id`,`name`,`price` FROM `goods` WHERE `id` > 2";
$mysqli_result = $mysqli->query($sql);
if($mysqli_result && $mysqli_result -> num_rows > 0) {
$staffs = $mysqli_result->fetch_all();
foreach($staffs as $staff){
vprintf('<li>id:%s,名字:%s,价格:%s</li>',$staff);
}
}else {
echo '查询失败';
}
$mysqli_result->free_result();
$mysqli->close();
echo '<br>';
输出:
成功添加了1条记录,新增 记录ID:8
成功删除了 id=4的记录
成功更新了1条记录
id:3,名字:离子,价格:19
id:5,名字:梨子,价格:19
id:6,名字:栗子,价格:3333
id:7,名字:葡萄,价格:4444
id:8,名字:橘子,价格:999
有了上次做PDO
的经历,这次做MYSQL
顺手多了,基本就是显示结果的时候改了一下,成功拿下,当然也有一些小问题,在编写SQL
语句时,键名应该用`来阔上,php才能解析,后面调试的过程就把语句先打印出来,再放到adminer中执行一下,发现错了,赶紧查找原因,才找到是符号错了,此类的问题还有。只能说越挫越勇,遇到困难可能会有点难,但是找方法,问题总能够解决。