php使用mysqli操作数据库

1. 使用 MySQLi 对数据库进行增删改 操作:

 

 1 <?php
 2 /*
 3     使用mysqli 增删改 基本使用
 4  */
 5 //1. 创建一个 mysqli对象
 6     $mysqli = new mysqli('localhost','root','root','nvshen','3306');
 7  
 8     if ($mysqli->connect_errno) {
 9         die('连接失败'.$mysqli->connect_error);
10     }
11  
12 //2.设置字符集
13     $mysqli->set_charset('utf8');
14  
15 //3.拼接sql语句 如果只执行一条sql语句用如下写法:
16     $sqls = "INSERT INTO `think_admin` (username,password) VALUES ('admin',md5('123456'))"; //17  
18 //4.执行sql语句 成功返回true 失败返回 false)
19     if ($mysqli->query($sqls)) {
20         echo '执行成功';
21     }else{
22         echo '<br> 执行失败 sql语句是:' . $sqls;
23         echo '<br> 失败原因是:' . $mysqli->error;
24         exit;
25     }
26  
27  //Ps: 如果要一次性执行多条不同的sql语句,用如下拼接方法:
28   //注意拼接语法用 .= 然后每条语句后面用 ; 分割(就是冒号前面那个分号),最后一条不需要
29     $sqls = "INSERT INTO `think_admin` (username,password) VALUES ('admin',md5('123456'));"; //
30     $sqls .= "DELETE FROM `think_admin` WHERE id=2;"; //
31     $sqls .= "UPDATE `think_admin` SET username='admin999' WHERE id=1"; //32  
33     //批量执行sql语句使用multi_query()
34     if ($mysqli->multi_query($sqls)) {
35         echo '执行成功';
36     }else{
37         echo '<br> 执行失败 sql语句是:' . $sqls;
38         echo '<br> 失败原因是:' . $mysqli->error;
39         exit;
40     }
41  
42  ?>

 

 补充一点:

    //判断一下是否真正影响到了数据库的表
    if ($mysqli->affected_rows > 0) {
        echo '<br> 对表进行了影响';
    }else{
        echo '<br> 没有对表造成任何影响';
    }

    //获取刚刚添加的数据自增长的id值
    echo '<br> ID是:' . $mysqli->insert_id;

 

2. 使用 MySQLi 对数据库进行查询 操作:

 

 1 <?php
 2 /*
 3     使用mysqli查询数据库的 4 种方式(推荐使用第1种方式)
 4  */
 5 //1. 创建一个 mysqli对象
 6     $mysqli = new mysqli('localhost','root','root','nvshen','3306');
 7  
 8     if ($mysqli->connect_errno) {
 9         die('连接失败'.$mysqli->connect_error);
10     }
11  
12 //2.设置字符集
13     $mysqli->set_charset('utf8');
14  
15 //3.拼接sql语句
16     $sql = 'SELECT * FROM `think_admin`';
17  
18 //4.执行sql语句
19     $res = $mysqli->query($sql);
20  
21 //5.显示数据,使用$res 来循环取出
22     //方式1:使用fetch_assoc()
23     $arr_list = array();
24     while ($row = $res->fetch_assoc()) {
25         /*echo '<pre>';
26         print_r($row);*/
27         $arr_list[] = $row;//为了方便后续使用,封装到数组
28  
29     }
30  
31     echo '<br>--------------------------------';
32  
33     //方式2:使用 fetch_row();返回索引数组
34     //data_seek()是 将结果指向,设置成0,相当于放到结果集的最前面
35     $res->data_seek(0);
36     while ($row = $res->fetch_row()) {
37         echo '<pre>';
38         print_r($row);
39     }
40  
41     echo '<br>--------------------------------';
42  
43     //方式3:使用 fetch_array();返回索引数组+关联数组(不推荐使用)
44     //data_seek()是 将结果指向,设置成0,相当于放到结果集的最前面
45     $res->data_seek(0);
46     while ($row = $res->fetch_array()) {
47         echo '<pre>';
48         print_r($row);
49     }
50  
51     echo '<br>--------------------------------';
52  
53     //方式4:使用 fetch_object();返回对象
54     //data_seek()是 将结果指向,设置成0,相当于放到结果集的最前面
55     $res->data_seek(0);
56     while ($row = $res->fetch_object()) {
57         echo '<pre>';
58         print_r($row);
59     }
60  
61  
62 //6.关闭相关资源,不释放,系统也会自动释放的
63     //释放资源
64     $res->free();
65     //关闭连接
66     $mysqli->close();
67  
68 ?>

 

3. 补充:使用mysqli同时执行多条sql查询语句

<?php 
//1. 创建一个 mysqli对象
$mysqli = new mysqli('localhost','root','root','ceshi','3306');
 if ($mysqli->connect_errno) {
        die('连接失败'.$mysqli->connect_error);
    }
//2.设置字符集
    $mysqli->set_charset('utf8');

//3. 多条sql查询语句,注意下面的拼接语法,表是用的Tab键上面的 ` 不是单引号
//还有就是拼接使用.= 每条语句后面(冒号前面)用 ; 分割,最后一条不需要
$sqls = "SELECT * FROM `aa`;";
$sqls .= "SELECT * FROM `student`";

//4. 批量执行sql语句使用multi_query
if ($mysqli->multi_query($sqls)) {
   //把结果取出
    do {
        //$res 就是一个 mysql_result对象
        $res = $mysqli->store_result();
        $arr_list = array(); //创建个空数组下面封装使用
        while ($row = $res->fetch_assoc()) {
            $arr_list[] = $row;//把$row数组封装成二维数组方便取值使用
        }

        print_r($arr_list); //打印出取到的两个表的全部数据(二维数组)

        //释放结果
        $res->free();

        //判断还有没有下一个结果集
        //more_results该函数只是判断还有没有更多的结果集
        if (!$mysqli->more_results()) {
            break;
        }

    } while ($mysqli->next_result());

}else{
    echo '<br> 执行失败' . $mysqli->error;
    exit;
}

?>

 

posted @ 2020-10-14 01:55  华北业余选手  阅读(253)  评论(0)    收藏  举报