初识mysqli

前提:
java里的类新建实例也是使用new,php也是;访问成员或方法,也是用"->"

1、在php5.0之后,既可以使用mysql函数进行数据库操作,也可以使用新增加的mysqli()
2、mysqli被封装到一个类中,其执行速度更快
3、如果要使用mysqli函数,需要将php.ini文件中的配置项:;extension=php_mysqli.dll打开(即去掉注释)
4、mysqli连接数据库(两种方法):
    (1)mysqli_connect()函数
    例:$conn=mysqli_connect('localhost','root','123456','test_users');        //这里的test_users是指定的数据库,这就是比mysql_connect()多的一个参数在连接数据库服务器时可以选择数据库
    (2)声明mysqli对象
    $conn=new mysqli('localhost','root','123456','test_users');
    也可以在创建对象时不输入参数
    $conn=new mysqli();
    $conn->connect('localhost','root','123456');        //这里就不能选择数据库了
    $conn->select_db('test_users');

这里可以了解一下mysqli类里的成员方法:
    connect()               打开一个新连接到数据库服务器
    select_db()             选择当前数据库
    set_charset()           设置客户端的默认字符集
    close()                 关闭先前打开的连接
    query()                 执行sql语句,并返回结果集
    multi_query()           同时执行多个查询语句
    store_result()          在执行多个查询语句时,获取当前结果集
    next_result()           在执行多个查询语句时,获取当前结果集的下一个结果集
    more_result()           从多查询结果语句中检查是否有任何更多的查询结果集

5、获得结果集也有两种写法:
    (1)$result=mysqli_query(连接对象,查询语句);
    (2)$result=$conn->query(sql语句);

6、其他mysql函数
mysql_fetch_row()       将当前记录保存到一个索引数组
mysql_fetch_assoc()     将当前记录保存到一个关联数组,每次取出一条记录后,指针会自动指向下一条记录
mysql_fetch_array()     将当前记录保存到一个含有索引和关联的混合数组
mysql_fetch_object()    将当前记录保存到一个对象

mysql_num_rows()        返回结果集中的记录总数
mysql_free_result()     释放结果集
mysql_affected_rows()   返回此次操作所影响的记录行数


7、mysql_result类中的成员方法,即结果集的处理方法
fetch_row()
fetch_assoc()
fetch_array()
fetch_object()
data_seek(n)        将指针指向第n条记录
fetch_field()       从结果集中获得某一字段的信息
fetch_fields()      从结果集中获得所有字段的信息
field_seek()        设置结果集中字段的偏移位置
close()             关闭结果集

8、如果要判断结果集不为空,只能使用if($result->num_rows>0)来判断,不能使用if($result)来判断,因为$conn->query()只有在执行查询出错时才返回false


实例:

<?php

//这里有个坑,要使用“<?  ?\>”必须保证php.ini文件中的short_open_tag=On

header("Content-Type: text/html;charset=utf-8");//设置编码

error_reporting(E_ALL || ~E_NOTICE); //显示除去 E_NOTICE 之外的所有错误信息 

$conn=new mysqli();

$conn->connect('localhost','test','test');//对数据库指定一个用户,给他最小权限,不要都用root权限

$conn->select_db('fendo');

/**

 * 或者写:$conn=new mysqli('localhost','root','root','fendo');

 * 

 */

$conn->query('set names utf-8');   //设置字符集

$result=$conn->query("select * from users;");//或者写:$result=mysqli_query($conn,'select *from users');

?>

<table border="1" width="95%">

    <tr bgcolor="#e0e0e0">

    <th width="50">ID</th> <th width="50">username</th> <th width="50">password</th>

    </tr>

    <?php

    while($row=$result->fetch_assoc()){ 

    ?>

        <tr>

        <td><?=$row['id']?></td>

        <td><?=$row['username']?></td>

        <td><?=$row['password']?></td>

        </tr>

    <?php } ?>

</table>

    <p>记录总数<?=$result->num_rows ?></p>

发布了63 篇原创文章 · 获赞 323 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/qq_41289254/article/details/103150339
今日推荐