数据库

作者: 成都阿童木 | 来源:发表于2019-01-20 16:32 被阅读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

    相关文章

      网友评论

          本文标题:数据库

          本文链接:https://www.haomeiwen.com/subject/tmfxjqtx.html