sql增删改查
- 插入数据 INSERT INTO
(1)mysql命令,可以是大写,也可以是小写。但是我们程序员,默认命令是大写,其他的字段,数据,是小写
(2)表名 和 字段名,用 ``符号 包裹。 ·· ``
(3)值,是字符串的话,用 '' 单引号
// 第一种
INSERT INTO `user` VALUES (4, '小五', 25, '2021-10-15 21:54:42', 0);
// 第二种
INSERT INTO `user` ( `id` ) VALUES ( 5 )
// 第三种
INSERT INTO `user` SET `name` = '小六'
- 查询 SELECT
// 查询是不改变数据库里的数据的, 插入、修改、删除,都是要修改数据库中的数据。
// 查询可以带条件
SELECT * FROM `user`
- 修改 UPDATE
// 一定要增加条件,如果不增加条件,它会把表里的数据,全部修改
// WHERE 命令,就是增加条件的
UPDATE `user` SET `name` = '小七' WHERE `id` = 5
- 删除 DELETE
// 删除和更新是危险性操作,如果我们不增加条件WHERE,它会把所有的数据都删了。
DELETE FROM `user` WHERE `id` = 6
- 运算符:= <> > >= < <=
SELECT * FROM `user` WHERE `id` < 5
- 逻辑运算符 AND OR XOR
SELECT * FROM `user` WHERE `id` < 5 OR `id` > 20
- not ! 逻辑非
SELECT * FROM `user` WHERE `name` IS NOT NULL
- BETWEEN 相当于 >=10 AND <= 20
SELECT * FROM `user` WHERE `id` BETWEEN 10 AND 20
SELECT * FROM `user` WHERE `id` NOT BETWEEN 10 AND 20
- LIKE 模糊查询
SELECT * FROM `user` WHERE `account` LIKE '%abc%'
- 返回值
// * 会把所有的返回值 都返回
SELECT `name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%abc%'
- 分页 LIMIT
// 数据库的条件,是从0开始的
SELECT `name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%o%' LIMIT 0,10
- 排序 ORDER BY
// 默认是正序 从小到大
SELECT `id`,`name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%o%' ORDER BY `id` LIMIT 0,10
// DESC是倒序,从大到小
SELECT `id`,`name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%o%' ORDER BY `id` DESC LIMIT 0,10
PDO
- php获取mysql数据
// 1.连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
// 2.预处理sql语句
$pre = $pdo -> prepare('SELECT * FROM `user`');
// 3.执行sql语句
$exe = $pre -> execute();
// 4.返回结果集
$data = $pre -> fetchAll();
print_r($data);
- 防止连接出错
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
// 链接数据库
}catch(PDOException $e){
// 抛出错误
echo '数据库连接失败' . $e->getMessage();
}
- fetch() 查询出来是一维数据
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
$pre = $pdo -> prepare('SELECT * FROM `user` WHERE `id`=1');
$exe = $pre -> execute();
$data = $pre -> fetch();
print_r($data);
}catch(PDOException $e){
// 抛出错误,错误是你可以定义的
echo '数据库连接失败' . $e->getMessage();
}
- 添加数据
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
}catch(PDOException $e){
// 抛出错误,错误是你可以定义的
echo '数据库连接失败' . $e->getMessage();
}
$pre = $pdo -> prepare("INSERT INTO `user` VALUES (null, '小八', 35, '2021-10-15 21:54:42', 0)");
$exe = $pre -> execute();
if(!$exe){
// 错误信息打印出来
print_r($pre->errorInfo());
}
print_r($exe);
返回数据1, 数据添加成功
- PDO绑定参数
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
}catch(PDOException $e){
// 抛出错误,错误是你可以定义的
echo '数据库连接失败' . $e->getMessage();
}
//pdo只要你给个占位符,在下面的代码中,传值给站位符
$sql = 'INSERT INTO `user` SET `name`=:name, `age`=:age,`ctime`=:ctime,`utime`=:utime';
$pre = $pdo -> prepare($sql);
//bindParam 参数绑定
$pre -> bindParam ('name',$name, PDO::PARAM_STR);
$pre -> bindParam ('age',$age, PDO::PARAM_INT);
$pre -> bindParam ('ctime',$ctime, PDO::PARAM_STR);
$pre -> bindParam ('utime',$utime, PDO::PARAM_INT);
$name = '小九';
$age = 31;
$ctime = date('Y-m-d H:i:s',time());
$utime=0;
$exe = $pre -> execute();
if(!$exe){
// 错误信息打印出来
print_r($pre->errorInfo());
}else{
// rowCount 获取是否成功。影响数量
echo $pre -> rowCount();
echo '<hr>';
// lastInsertId 获取这次自增的ID,类是用连接的类$pdo
echo $pdo -> lastInsertId();
}
- 用?号占位
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
}catch(PDOException $e){
// 抛出错误,错误是你可以定义的
echo '数据库连接失败' . $e->getMessage();
}
$sql = 'INSERT INTO `user` SET `name`=?, `age`=?,`ctime`=?,`utime`=?';
$pre = $pdo -> prepare($sql);
//bindParam 参数绑定
$pre -> bindParam (1,$name, PDO::PARAM_STR);
$pre -> bindParam (2,$age, PDO::PARAM_INT);
$pre -> bindParam (3,$ctime, PDO::PARAM_STR);
$pre -> bindParam (4,$utime, PDO::PARAM_INT);
$name = '小十';
$age = 31;
$ctime = date('Y-m-d H:i:s',time());
$utime=0;
$exe = $pre -> execute();
if(!$exe){
// 错误信息打印出来
print_r($pre->errorInfo());
}else{
// rowCount 获取是否成功。影响数量
echo $pre -> rowCount();
echo '<hr>';
// lastInsertId 获取这次自增的ID,类是用连接的类$pdo
echo $pdo -> lastInsertId();
}
- 明文占位
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
}catch(PDOException $e){
// 抛出错误,错误是你可以定义的
echo '数据库连接失败' . $e->getMessage();
}
$sql = 'INSERT INTO `user` SET `name`=:name, `age`=:age,`ctime`=:ctime,`utime`=:utime';
$pre = $pdo -> prepare($sql);
$exe = $pre -> execute([
':name' => '十一郎',
':age' => 21,
':ctime' => date('Y-m-d H:i:s',time()),
':utime' => 0
]);
if(!$exe){
// 错误信息打印出来
print_r($pre->errorInfo());
}else{
// rowCount 获取是否成功。影响数量
echo $pre -> rowCount();
echo '<hr>';
// lastInsertId 获取这次自增的ID,类是用连接的类$pdo
echo $pdo -> lastInsertId();
}
商城项目 建表
- 用户表
- 商品表
- 订单表