MysqlLi

作者: 半数的年 | 来源:发表于2018-07-13 14:49 被阅读0次

    1、MySQLi相对于MySQL的优势

    image.png

    2、MySQLi扩展的安装

    image.png

    3、验证扩展是否开启

    phpinfo();  // 可以查看扩展是否开启
    
    image.png

    检测是否加载

    var_dump(extension_loaded("mysqli")); // 检测扩展是否加载 返回真或者假
    

    检测扩展中的函数

    var_dump(function_exists("mysqli_connect"));    // 检测扩展中某个函数是否存在来验证扩展是否加载
    

    得到当前开启的扩展

    print_r(get_loaded_extensions());   // 得到当前开启的扩展
    

    4、基于面向对象使用MySQLi

        // 1、建立到MySQL的连接
        $mysqli = new mysqli('localhost','root','');
        // 2、选择操作的数据库
        $mysqli->select_db('article');
        print_r($mysqli);
        if ($mysqli->connect_errno){
            // 如果错误编号大于0 则结束
            die('Connect Error:'.$mysqli->connect_error);
        }
    

    5、获取客户端信息

    echo "客户端的信息:".$mysqli->client_info."<br />";
    echo $mysqli->get_client_info()."<br />";
    echo "客户端的版本:".$mysqli->client_version."<br />";
    
    image.png

    6、获取服务端信息

    echo "服务端的信息:".$mysqli->server_info."<br />";
    echo $mysqli->get_server_info()."<br />";
    echo "服务端的版本:".$mysqli->server_info."<br />"; 
    
    image.png

    7、设置客户端编码方式utf-8

    // 设置客户端编码方式utf-8
    $mysqli->set_charset("utf-8");
    

    8、select/desc/describe/show/explain执行成功返回mysqli_result对象,执行失败返回false,对于其他的sql语句 执行成功返回true,失败返回false

    9、获取全部记录

        $rows = $mysqli_result->fetch_all();    // 获取结果集中所有记录,默认返回的是二维索引+索引的形式
        $rows = $mysqli_result->fetch_all(MYSQLI_NUM);  // 获取结果集中所有记录,默认返回的是二维索引的形式
        $rows = $mysqli_result->fetch_all(MYSQLI_ASSOC);    // 二维关联数组
        $rows = $mysqli_result->fetch_all(MYSQLI_BOTH); // 二维索引+关联数组
    

    10、获取单条记录

        $row = $mysqli_result->fetch_row(); // 取结果集中的一条记录作为索引数组返回
        $row = $mysqli_result->fetch_assoc();   // 取结果集中的一条记录作为关联数组返回
        $row = $mysqli_result->fetch_array();   // 取结果集中的一条记录作为索引+关联数组返回
        $row = $mysqli_result->fetch_array(MYSQLI_ASSOC);   // 取结果集中的一条记录作为关联数组返回
    
        $row = $mysqli_result->fetch_object();  //
    

    11、移动指针位置

    $mysqli_result->data_seek(0);    // 0表示指针移动到指向第一条的位置
    

    12、实现多条语句操作

        header("content-type:text/html;charset=utf-8");
        $mysqli = new mysqli('localhost','root','','article');
        if ($mysqli->errno){
            die("CONNECT ERROR:".$mysqli->error);
        }
        $mysqli->set_charset("utf8");
        $sql= "insert into user(username,age) values('imooc2',11);";
        $sql .= "update user set age = 100 where id = 2";
        // 针对多条sql语句的查询
        $res = $mysqli->multi_query($sql);
        var_dump($res);
    

    13、执行多条查询语句处理多个结果集

        $sql = "select id,username,age from user;";
        $sql.= "select * from user;";
        // user_result()/store_result 先获得第一个结果集
        // more_results():检测是否有更多的结果集
        // next_result():将结果集指针向下移动一位
        if ($mysqli->multi_query($sql)){
            do{
                if ($mysql_result=$mysqli->store_result()){
                    $rows[]=$mysql_result->fetch_all(MYSQLI_ASSOC);
                }
            }while($mysqli->more_results() && $mysqli->next_result());
        }else {
            echo $mysqli->error;
        }
    

    14、实现预处理

        $sql = "insert user(username,age) values(?,?);";
        // 准备预处理语句
        $mysqli_stmt = $mysqli->prepare($sql);
        $username = 'king';
        $age = 23;
        // 绑定参数
        $mysqli_stmt->bind_param('si',$username,$age);
        // 执行预处理语句
        if ($mysqli_stmt->execute()){
            echo $mysqli_stmt->insert_id;
        }else {
            $mysqli_stmt->error;
        }
    

    15、执行事务

    image.png

    相关文章

      网友评论

        本文标题:MysqlLi

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