查看数据库列表
show databases;
使用数据库
use xxx;
查看数据表列表
show tables;
创建数据库
create database if not exists school
连接数据库有mysqli和PDO两种方式
$servername = "localhost";
$username = "root";
$password = "123456";
$conn = mysqli_connect($servername, $username, $password);
if(!$conn) {
die("erorr:". mysqli_connect_error());
}
echo "successful";
mysqli_close();
$servername = "mysql:host=localhost;dbname = root";
$username = "root";
$password = "123456";
try {
$pdo = new PDO($servername, $username, $password);
echo "successful";
} catch (PDOException $e) {
//throw $th;
echo 'error' . $e->getMessage();
}
- 创建数据库
$sql="create database if not exists school";
try{
if ($res=$pdo->query($sql) === true) {
echo 'successful';
} catch (PDOException $e) {
//throw $th;
echo 'error' . $e->getMessage();
}
插入数据
如果列设置auto_increment或timestamp,就不需要在sql语句中指定值,mysql会自动为该列添加值
$sql = "insert into user(username,pass) values('123','123')";
$pdo->query($sql);
- 字符串进行转义处理
$name = $con->real_escape_string($name);
插入多条数据
$sql = "insert into user(username,pass) values
('123','123'),
('123','123'),
('123','123'),
";
$pdo->query($sql);
$sql = "insert into user(username,pass) values ('123','123')";
$sql .= "insert into user(username,pass) values ('123','123')";
$pdo->multi_query($sql);
查询数据
$sql = "select * from user";
$result = $pho->query($sql);
$result->num_rows() 获取到的数据条数
$result->fetch_assoc() 一个用于从结果集中获取一行数据的函数。他一关联数组的形式返回结果,其中列命作为键,对应的值则是该行中各列的值
fetch_row 只取值
fetch_array 以数组的方式拿到所有的键值
- free_result()
释放内存资源
$result->free->result();
- 条件判断
< > = != >= <=
like "%xxx%" like "%xxx" like "xxx%"
between and 用于时间
is null is not null
in (a,b,c)
and or not
- 排序
order by排序
asc升序,desc降序
- 限制
select x from a limit 行数 offset 偏移量;
更新数据
$sql = "update user set usernmae='x', password='x' where id =1";
删除数据
删除表中的重复行
delete t1 from t1, t2 where t1.id=t2.id and t1.id > t2.id;
修改数据表
预处理语句
预处理语句用于执行带有参数的sql语句:
- 预处理语句可以提高安全性,对于防止sql注入非常有用;
- 允许重复使用相同的sql模板而只需更改参数,提高执行效率;
查询
插入
affected_row拿到的是最新插入的几条,并不是所有;
其中?为占位符,通过告诉数据库参数的数据类型,可以降低sql注入的风险,参数有以下四种类型:
- i 整型
- d double
- s 字符串,几个参数就加几个s
- b 二进制大对象BLOB
php8新方法
$name = "xxx";
$sql = "insert into user (username, password, phone) values (?,?,?)";
$conn->execute_query($sql,[$name,'132','123123']);