数据库

2019-01-20  本文已影响0人  成都阿童木

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属性


change.php


点击提交后,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

上一篇下一篇

猜你喜欢

热点阅读