数据库
https://www.bilibili.com/video/av21010200/?p=34
1.链接数据库
$link=mysqli_connect("localhost","root","password");
2.判断是否连接成功
if(!$link){
die("connect error:".mysqli_connect_error);
}
else
echo "连接成功";
3.设置字符集
mysqli_set_charset($link,"utf8");
4.选择数据库
mysqli_select_db($link,test); //test是数据库
5.准备sql语句
$sql="select * from tb_admin "; //tb_admin是取的表名
6.发送sql语句
$obj=mysqli_query($link,$sql); //失败时返回 FALSE,通过mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result对象,其他查询则返回TRUE。
7.处理结果集
$result=mysqli_fetch_assoc($obj); //会自动取下一行
$result=mysqli_fetch_assoc($obj);
$result=mysqli_fetch_assoc($obj); //每一句都是取表中的一行,第一句取第一行,第二句取第二行。返回的是一维的关联数组
8.关闭数据库库(释放资源)
mysqli_close($link);
9. 常用函数
$result=mysqli_fetch_assoc($obj) 返回带关联的一个数组,当表中字段竖向排列时,是一个第一列数据的关联数组
只带关联取所有行数据,用循环
while(mysql_fetch_assoc($obj))
var_dump(mysql_fetch_assoc($obj));
$result=mysqli_fetch_row($obj)返回带索引的一个数组,其余与上个相同
只带索引$result=mysqli_fetch_array($obj)返回既带索引又带关联的数组
$result=mysqli_num_rows($obj) 返回表的行数,即有多少条数据 (在sql看来,字段是横着排列的?PHPmyadmin中是竖着的)
如图字段是横着排的以上的函数必须先执行查询操作 即 select * from table_name(至少插入后执行会报错)
$result=mysqli_affected_rows($link) 返回前一次 MySQL 操作(SELECT、INSERT、UPDATE、REPLACE、DELETE)所影响的记录行数
$result=mysqli_insert_id($link)返回最后一次插入的id
10.插入数据
$sql="insert into student(name ,id ,age) values('chen','2011414','18')"; //student是表名 name,id,age是字段
$obj=mysqli_query($link,$sql); //插入操作返回的是true或false
11.删除,修改和添加
这是我的代码,注意点击删除后,id会通过url传输,链接标签有疑惑,引号问题。
点击john的删处后,注意url上的id。是属于john的id
删除操作 delete.php
sql语句 delete from table_name where xxx="xxxxxx"
比如此处是根据id删除,看图中注释
修改操作 change.php
sql语句:update table_name set name="xxx", age="xxxx" where id="xxx"
注:name age id是我数据库里定义的字段。不建议修改id, id最好是唯一的。
$name="chenrui" ;
则对应sql语句为
update table_name set name='$name' where id="xxx"
注意即使$name已经是字符串了,但在sql语句中依然要给变量加单引号
在主页面点击修改后,会跳到修改页面(form表单实现),点击提交后,会跳到另一个用于修改数据库的页面。
test.php 主页面
change.php 主要是表单操作,用于输入修改的值,将修改的值通过url(前提表单使用get方法)传给修改数据库的php文件。当<input>有name属性时,就会通过url传递name属性,属性的值就是输入的内容。由于无法修改id,所以通过hidden类型的<input>传递id
hidden属性
点击提交后,url如图
dochange.php 用于修改数据库的数据。
用$_GET变量从url获取数据。$_GET["name"]中的name下标是<input>的name属性,这个数组的值才是修改时填入的内容
添加操作
add.php 创建一个表单,用于输入添加的信息,id不用输入,数据库自动分配
doadd.php 向数据库添加数据 主要是用insert into 语句
分页的实现
sql语句
SELECT * FROM table LIMIT [offset,] rows
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)
SELECT * FROMtable LIMIT 5,10; // 检索记录行 6-15
sql的count()函数
select count(column_name) [ as xxx ] from table [ where column_name=xxxxx]
在php中,必须用下面方式才能得到结果。是一个关联数组,键值就是个数
最终代码 还是在test.php内
注册登录
登录使用到的关键sql语句
$sql="select username , password from user where username='$username'and password= '$password' ";
mysqli_num_rows[$obj]用于判断查询语句查到了几条记录。如果为真 说明账户密码输入正确。
注册用到的
$sql2 = "insert into user(username , password) values('$username' , '$password')";
login.php
dologin.php
regist.php
doregist.php