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

来源:互联网 发布:ubuntu重新安装unity 编辑:程序博客网 时间:2024/05/21 19:50

mysqli简介:

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

使用mysqli面向过程接口访问数据库;

1:打开mysqli扩展模块;

php.ini文件: extension = php_mysqli.dll;

2:连接数据库:

$mysqli = mysqli_connect("localhost","username","passwored",'daname');

3:连接错误处理:

    mysqli_connect_error():返回mysql连接错误的错误信息    mysqli_connect_errno():返回mysql连接的错误代码;    if(mysqli_connect_error()){}    if(mysqli_connect_errno()){}

4:设置字符编码:

mysqli_set_charset("utf-8");

5:执行sql语句:

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

6:处理结果集:

//将结果集包装成对象;            1:mysqli_fetch_object($result);            //将结果包装成数组;            2:mysqli_fetch_array($result);            //将结果包装成数组;            3:mysqli_fetch_assoc($result);            //将结果包装成数组;            4:mysqli_fetch_row($result);            6:跳转结果集指针:               mysqli_data_seek($result,n)//把结果集指针跳转到指定条;            //解析的时候必须要放置在循环中,否则将只能取出满足条件的第一条数据;

7:获取其他信息:

    1: mysqli_num_rows($result)//:获取结果集的总行数;    2: mysqli_num_fields()//:获取结果集的字段数;    3: mysqli_affected_rows()//:获取受影响的行数;    4: mysqli_fetch_fields()//:获取某行所有字段并作为数组;    5: mysqli_data_seek()//:移动数据指针,默认是在第一列;    6: mysqli_field_tell() //:获取当前指针的位置;    7: mysqli_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(mysqli_fetch_array($_result));            //将结果集指针移到下一个        mysqli_next_result($_mysqli);        $_result= mysqli_store_result();        print_r(mysqli_fetch_array($_result));        mysqli_next_result($_mysqli);        $_result= mysqli_store_result();        print_r(mysqli_fetch_array($_result));        } 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:事务执行完成开启自动提交:            mysqli_autocommit(true);
0 0
原创粉丝点击