php基础系列----10php通过mysqli扩展操作mysql数据库

mysqli简介:

    1:是mysql的扩展模块;通过mysqli访问mysql数据更安全,支持预处理,因此可以避免sql注入,更易维护;
    2:提供了面向对象和面向过程的接口,而mysql_extension只能通过面向过程接口访问;
    3:mysql是非持久连接函数,脚本执行完毕即断开连接;而mysqli则是持久连接;

使用mysqli面向对象接口访问数据库;

1:打开mysqli扩展模块;

    php.ini文件: extension = php_mysqli.dll;//去掉前面的分号

2:连接数据库:

            $mysqli = new mysqli("localhost","username","passwored",'daname');
            或:
            $mysqli = new mysqli();
            $mysqli->connect("localhost","username","passwored",'daname');

3:连接错误处理:

        connect_error():返回mysql连接错误的错误信息
        connect_errno():返回mysql连接的错误代码;
            if($link->connect_error()){}
            if($link->connect_errno()){}

4:设置字符编码:

$mysqli->set_charset("utf-8");

5:执行sql语句:

            $result = $mysqli->query($sql);
            //如果是增删改语句返回true/false;
            //如果是查询语句。执行成功返回结果集,执行失败返回false;

6:处理结果集:

//将结果集包装成对象;
            1$result->fetch_object();

            //将结果包装成数组;
            2$result->fetch_array();

            //将结果包装成数组;
            3$result->fetch_assoc();

            //将结果包装成数组;
            4$result->fetch_row();

            6:跳转结果集指针:
             $result->data_seek()//把结果集指针跳转到指定条;

            //解析的时候必须要放置在循环中,否则将只能取出满足条件的第一条数据

7:获取其他信息:

            1$result->num_rows()//:获取结果集的总行数;
            2$result->num_fields()//:获取结果集的字段数;

            3$result->affected_rows()//:获取受影响的行数;

            4$reslut->fetch_fields()//:获取某行所有字段并作为数组;

            5$result->data_seek()//:移动数据指针,默认是在第一列;
            6$result->field_tell() //获取当前指针的位置;
            7:free_result()     //释放结果内存。

8:执行多条查询语句:

                $_sql .="SELECT * FROM tg_user;" ;
                $_sql .="SELECT * FROM tg_photo;" ;
                $_sql .="SELECT * FROM tg_article" ;
                // 开始执行多条 SQL 语句
                if ( $_mysqli->multi_query( $_sql )) {

                //开始获取第一条 SQL 语句的结果集
                $_result= $_mysqli ->store_result();

                print_r($_result ->fetch_array());

                //将结果集指针移到下一个
                $_mysqli->next_result();

                $_result= $_mysqli ->store_result();
                print_r($_result ->fetch_array());

                $_mysqli->next_result();

                $_result= $_mysqli ->store_result();

                print_r($_result ->fetch_array());
                } else {
                echo'sql 语句有误! ' ;
                }

9:获取和数据库本身有关的信息:

        $mysqli->get_charset()     //返回字符集对象。
        $mysqli->get_client_info()     //返回 MySQL 客户端库版本。
        $mysqli->get_client_stats()    //返回有关客户端每个进程的统计。
        $mysqli->get_client_version()  //将 MySQL 客户端库版本作为整数返回。
        $mysqli->get_connection_stats()    //返回有关客户端连接的统计。
        $mysqli->get_host_info()   //返回 MySQL 服务器主机名和连接类型。
        $mysqli->get_proto_info()  //返回 MySQL 协议版本。
        $mysqli->get_server_info()     //返回 MySQL 服务器版本。
        $mysqli->get_server_version()  //将 MySQL 服务器版本作为整数返回。

10:事务:

mysqli事务:


        //1:关闭自动提交:
            $mysqli->autocommit(false);
        //2:执行sql语句:
            $resul1 = $mysqli->query($sql1);
            $resul2 = $mysqli->query($sql2);
            $resul3 = $mysqli->query($sql3);
        //3:提交
            if($resul1&&resul2&&resul3){
                $mysqli->commit();
            }else{
                $mysqli->rollback();
            }
        //4:事务执行完成开启自动提交:
            $mysql->autocommit(true);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值