php实现数据库的增删改查总结

查询语句的语法:
select() * | 字段列表 from 表列表 where 条件  查询可以返回一个结果集
select * from mytable

select id,name from mytable

select * from mytable where id=3

select * from mytable where age<20

not非 and与 or或
select * form mytable where age<20 and gender=1

常见的数学函数
1、count函数 可以查询满足条件的记录数  无法计算null值,并且会忽略null值   分页中使用。
2、max获取最大值  min获取最小值   字符串的话比较ascii码值
3、avg获取平均值  它的参数一般是数值   对于字符串无法转换,返回0 

order by  排序
语法: select * | 字段列表 from 表列表 where order by 排序字段列表 asc(升序) | desc(降序)

limit 获取指定范围的数据
limit后只有一个参数:相当于获取指定的前n条记录
selecte * from mytable limit 3
//注意:order by必须写在limit的前面
selecte * from mytable order by id desc limit 3
limit后两个参数:limit n(偏移量,从0开始),m(获取的记录数)  从偏移量n开始,取m条
以下两种写法均可。
select * from mytable limit 2,4
select * from mutable limit 4 offset 2

我们需要将不同的数据放在不同的表中,便于我们日后的管理及使用。

多表查询
使用select * where的方式    等号在where后面写是判断的意思
select * from student,class where student.cid = class.classid
select studentid,studentname,age,gender,classname from student,class where student.id = class.classid
以上两种书写方式已经被第三种书写方式给替代了  join on
select * from student JOIN class on student.cid = class.classid
left join  左侧表作为主表。可获取左表中的所有数据,如果建立关联的字段在右表中没有存在,则右表中相应字段的数据默认为空
select * from student left JOIN class on student.cid = class.classid
right join 右表作为主表, 获取右表中的所有数据,如果建立关联的字段在左表中没有存在,则左表中相应的字段的数据默认为空
select * from student right JOIN class on student.cid = class.classid

建立php与数据库之间的连接
1、在php中使用musqli_connect函数就可以实现php与服务器的链接,
函数的参数为主机,用户名,密码,要操作的数据库
并且此函数会自动的打开连接。 
函数的返回值为布尔值,
(1)连接成功就会返回一个连接对象(资源)
(2)连接失败的话会返回false
下面是几种常见连接失败的情况
Unknown database "mybase1"   数据库找不到,注意名称是否正确
Access denied for user 'root'@'localhost'(using password:YES):密码错误或用户名错误
mysqli_connect()   一般是服务器相关的错误
所以需要参数来接收。
2、之后需要判断连接是否成功?
header("Content-Type:text/html;charset=utf-8);   //设置当前php的返回值的编码为utf-8
$conn = musqli_connect("localhost","root","root","mybase");
mysqli_set_charset($conn,"utf8");  //保证服务器返回值的编码与当前php编码一致,设置服务器的返回数据的编码。mysqli_set_chaset(连接对象,编码格式字符串);

函数die或exit   既可以打印输出结果,又可以阻止下面代码的继续执行。

3、连接成功之后,创建sql语句,执行相关的操作
(1)新增数据 
    在执行新增语句时,mysqli_query有返回值,成功为true;失败则为false
    $sql="insert into mytable values(null,'张三',30,'男')";
    $result = mysqli_query($conn,$sql);  //result就是来接收mysqli_query的返回值,接收之后需要进行判断的。
    if($result){
       echo '新增成功';
     }else{
       echo '新增失败';
       echo mysqli_error($conn);   //mysqli_error(连接对象);它可以输出最近一条sql语句在执行时所产生的错误信息。
     }
(2)修改操作
     $sql = "update mytable set age = 20 where id = '3'";
     $result = mysqli_query($conn,$sql);
     if($result){
       echo '修改成功';
     }else{
       echo '修改失败';
       echo mysqli_error($conn);   //打印出失败的原因
     }
(3)删除操作
      $sql = "delete from mytable where id = '4'";
      $result = mysqli_query($conn,$sql);
      if($result){
        echo '删除成功';
      }else{
        echo '删除失败';
        echo mysqli_error($conn); 
(4)查询操作
    1、设置响应头header("Content-Type:text/html;charset:utf-8");
    2、建立数据连接 $conn=mysqli_connect("localhost","root","root","mybase");
    3、设置编码 
          mysqli_set_charset($conn,"utf8");
          或者:mysqli_query($conn,"set naes utf-8");  比较常见
    4、判断连接状态    if(!$conn){die("连接失败")};
    5、创建查询语句   $sql = "select * from mytable";
    6、执行查询语句、接收  $result = mysqli_query($conn,$sql);
      注意:查询语句的返回结果并不是表中的数据,而只是一个针对表数据的引用。
      如果查询失败,则返回false
      如果成功,则有两种情况:有结果集无数据或有结果集也有数据
      判断结果集中是否有数据 mysqli_num_rows(结果集)可以判断当前结果集中是否有数据行
      提取数据中的函数
        需要注意:以下函数只能读取一行数据,但是读取完这一行数据之后,会自动的将指针移动到下一行,如果没有读取到任何的数据,则返回null。
        mysqli_fetch_array(查询语句返回的结果集) 返回只是一个数组,同时生成索引数组和关联数组两种形式
        mysqli_fetch_array(结果集资源,返回的内容的形式)
        返回的内容的形式包括 MYSQL_ASSOC(关联数组)   MYSQL_NUM (索引数组)  MYSQL_BOTH(两个都包含的数组)
        mysqli_fetch_assoc(查询语句返回的结果集)  返回值是关联数组
        mysqli_fetch_row(查询语句返回的结果集)   返回值是索引数组
      if(!$result){
        die("查询失败");
      }else if(mysqli_num_rows($result)==0){
        die("结果集为空");
      }else{
        while($arr=mysqli_fetch_array($result,MYSQL_ASSOC)){
          $res[]=$arr;
        }
        print_r($res);

      }
      

猜你喜欢

转载自blog.csdn.net/Redase/article/details/83409492