php数据库与CURD
数据库的管理工具
数据库管理工具有很多种,这里推荐用adminner.php,对于新手来说够用,不用太复杂的操作就行
简单CURD操作
数据表如下
CURD练习
<?php
namespace pdo_edu;
use PDO;
// 增操作
// 1.建立连接
require 'connect.php';
// 操作数据库
$sql = "INSERT `staffs` SET `name`=? , `age`=?, `class`=?, `phone`=?, `address`=?";
$stmt = $pdo -> prepare($sql);
$data = ['强哥',99,2020,'156666','北京市'];
$stmt->execute($data);
if ($stmt->rowCount() == 1) {
echo '增加成功,主键是:' . $pdo->lastInsertId();
} else {
echo '失败';
print_r($stmt->errorInfo());
}
unset($pdo);
echo '<hr>';
// 删除操作
require 'connect.php';
$sql = "DELETE FROM `staffs` WHERE `id`=:id";
$stmt = $pdo->prepare($sql);
$id = filter_input(INPUT_GET,'id',FILTER_VALIDATE_INT);
$stmt->execute(['id'=>$_GET['id']]);
// 判断是否执行成功
if($stmt->rowCount() === 1){
echo '删除成功';
}
unset($pdo);
echo '<hr>';
// 修改操作
require 'connect.php';
// 2.操作数据表
$sql = "UPDATE `staffs` SET `name` = ? WHERE `id`=?";
$stmt = $pdo->prepare($sql);
$stmt->execute([100,12]);
// rowCount():返回写操作产生的受影响的记录数量
if ($stmt->rowCount() === 1){
echo '更新成功';
} else {
echo '没有更新';
print_r($stmt->errorInfo());
}
unset($pdo);
echo '<hr>';
// 查询
require 'connect.php';
$sql = 'SELECT * FROM `staffs` WHERE `id` > :id';
// 预处理对象
$stmt = $pdo->prepare($sql);
$stmt -> execute(['id'=>0]);
$staffs = $stmt -> fetchAll(PDO::FETCH_ASSOC);
// var_dump($staffs);
foreach ($staffs as $staff) {
printf('id=%s--姓名=%s---班级=%s<br>',$staff['id'],$staff['name'],$staff['class']);
}
// 关闭连接
unset($pdo);
输出
数据库连接成功
增加成功,主键是:16
数据库连接成功
删除成功
数据库连接成功
更新成功
数据库连接成功
id=1--姓名=100---班级=1564
id=2--姓名=100---班级=1234
id=3--姓名=王麻子---班级=123
id=4--姓名=1---班级=1
id=6--姓名=3---班级=3
id=7--姓名=龙哥---班级=2020
id=9--姓名=100---班级=2020
id=12--姓名=100---班级=2020
id=13--姓名=强哥---班级=2020
id=14--姓名=强哥---班级=2020
id=15--姓名=强哥---班级=2020
id=16--姓名=强哥---班级=2020
总结
在作业的过程中,出现了很多的问题,整个案例也就几个增删改查,但实际做起来我碰到几个问题总结如下,
连接数据库
- 出现了
could not find driver
问题,通过一番百度,说是驱动问题,安装了一遍,还是不行,后来再仔细一看,原来是单引号与双引号的作用没有搞明白,单引号下的变量php是不会去解析的,双引号与没有符合下的变量php才会去解析。后来慢慢调试才发现错误。
操作数据库
- 在修改数据时,由与设置更改的是ID,但这个ID数字太大,数据库没有这个数据,导致输出的时候没有数据,一度怀疑代码错误,后来开始检查代码逻辑,才发现ID设置太大,更新不了。
以上的问题都是一些小的问题,但结果却是很致命,花了一上午的时间在检查could not find driver
,也让我知道了基础的重要性,基础不牢固就会有各种各样的bug。而还有一种办法可以补救,那就是要会调试,出现问题并不可怕,可怕的是问题出在哪里不知道,只有不停的调试,找到问题,才可以解决问题,有时候光会写代码没有用,因为总会有各种各样的问题,所以会调试才能让程序员走的更远。