VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • mysqli的基本使用

简单实例

  • 面向过程方式

    
    
     
    // 创建数据库连接
     
    $connect = mysqli_connect('127.0.0.1', 'root', 'root', 'test', 8889);
     
    // 判读是否连接成功了
     
    if (!$connect) {
     
    echo '数据库连接失败<br>';
     
    // 打印连接失败的原因
     
    var_dump(mysqli_connect_error($connect));
     
    exit();
     
    }
     
    // 设置字符集
     
    mysqli_set_charset($connect, 'utf8');
     
    // 组装sql语句
     
    $sql = "SHOW TABLES";
     
    // 执行sql语句
     
    $res = mysqli_query($connect, $sql);
     
    // 获取结果
     
    $res_array = mysqli_fetch_all($res);
     
    var_dump($res_array);
     
    mysqli_close($connect);
     
    // 输出结果:
     
    array (size=2)
     
    0 =>
     
    array (size=1)
     
    0 => string 'family' (length=6)
     
    1 =>
     
    array (size=1)
     
    0 => string 'person' (length=6)
  • 面向对象方式

    
    
     
    // 创建数据库连接对象
     
    $connect = new mysqli('127.0.0.1', 'root', 'root', 'test', 8889);
     
    // 判断是否连接成功
     
    if ($connect->connect_errno) { // 发生错误时,$connect->connect_errno会返回对应的错误码
     
    echo '数据库连接失败<br>';
     
    // 打印错误信息
     
    var_dump($connect->connect_error);
     
    }
     
    // 设置字符集
     
    $connect->set_charset('utf8');
     
    // 组装sql语句
     
    $sql = "SHOW TABLES";
     
    // 执行sql语句
     
    $res = $connect->query($sql);
     
    // 获取结果集
     
    $data = $res->fetch_all();
     
    // 关闭连接
     
    $connect->close();

mysqli详解

1. 连接数据库

连接数据库有两种方式,一种是通过mysqli_connect()帮助函数,另一种是通过new mysqli()对象来实现

两者所需传的参数同样都是这些(注意先后顺序):

  • host 数据库地址

    数据库地址可以传入域名或ip地址,如localhost或者127.0.0.1

  • username 管理用户名

    管理员账号,如: root

  • password 管理员密码

    管理员账号的密码

  • dtabases 要连接的数据

    选择要连接的数据库

  • port 端口号

    该参数如果不传,默认请求3306端口

2. 设置字符集

  • 使用mysqli_set_charset($connect, 'utf8');函数设置

第一个参数为mysqli的对象,第二个参数为需要设置的字符集,注意mysql的字符集中的utf8没有中间的-

  • 使用面向对象的方式创建

 
$connect = new mysqli('127.0.0.1', 'root', 'root', 'test', 8889);
 
$connect->set_charset('utf8');
 
// 或者
 
$connect = mysqli_connect('127.0.0.1', 'root', 'root', 'test', 8889);
 
$connect->set_charset('utf8'); # 都可以这么使用

3. 执行sql语句

通过mysqli_query()进行执行SELECTSHOW, DESCRIBE或 EXPLAIN,失败时返回false


 
$sql = "SHOW TABLES";
 
 
 
$res = $connect->query($sql); # 或者 mysqli_query($connect, $sql);

打印一下他返回了什么


 
var_dump($res);
 
object(mysqli_result)[2]
 
public 'current_field' => int 0
 
public 'field_count' => int 1
 
public 'lengths' => null
 
public 'num_rows' => int 2 # 返回了几条数据
 
public 'type' => int 0

4. 获取结果

通过mysqli_query()执行的sql语句之后如何获取结果呢?可以通过mysqli_fetch_array()mysqli_fetch_assoc()mysqli_fetch_all()mysqli_fetch_row()等进行获取结果

当需要获取一条数据的时候可以使用mysqli_fetch_row()

  • mysqli_fetch_array()

    该函数的第一个参数是通过mysqli_query()返回的对象

    第二个参数是获取结果的类型:

    ​ MYSQLI_ASSOC 关联数组 同mysqli_fetch_assoc()函数

    ​ MYSQLI_NUM 数字数组

    ​ MYSQLI_BOTH默认。同时产生关联和数字数组

    
    
     
    # MYSQLI_BOTH 默认情况
     
    $sql = "SHOW TABLES";
     
    $res = $connect->query($sql);
     
    $data = $res->fetch_array(); # 或者 mysqli_fetch_array($res)
     
    var_dump($data);
     
    # 输出结果
     
    array (size=2)
     
    0 => string 'family' (length=6)
     
    'Tables_in_test' => string 'family' (length=6)
    
    
     
    # MYSQLI_ASSOC 获取关联数组
     
    $sql = "SHOW TABLES";
     
    $res = $connect->query($sql);
     
    $data = $res->fetch_array(MYSQLI_ASSOC); # 或者 mysqli_fetch_array($res, MYSQLI_ASSOC)
     
    var_dump($data);
     
    # 输出结果
     
    array (size=1)
     
    'Tables_in_test' => string 'family' (length=6)
    
    
     
    # MYSQLI_NUM 获取关联数组
     
    $sql = "SHOW TABLES";
     
    $res = $connect->query($sql);
     
    $data = $res->fetch_array(MYSQLI_NUM); # 或者 mysqli_fetch_array($res, MYSQLI_NUM)
     
    var_dump($data);
     
    # 输出结果
     
    array (size=1)
     
    0 => string 'family' (length=6)
  • mysqli_fetch_assoc()

    该函数与mysqli_fetch_array第二个参数传递MYSQLI_ASSOC的结果是一样的

    
    
     
    $sql = "SHOW TABLES";
     
    $res = $connect->query($sql);
     
    $data = $res->fetch_assoc(); # 或者 mysqli_fetch_assoc($res)
     
    # 输出结果
     
    array (size=1)
     
    'Tables_in_test' => string 'family' (length=6)
  • mysqli_fetch_all

    mysqli_fetch_array一样,只不过他的默认获取是数字索引数组

    
    
     
    $sql = "SHOW TABLES";
     
    $res = $connect->query($sql);
     
    $data = $res->fetch_all(); # 或者 mysqli_fetch_all($res)
     
    # 输出结果
     
    array (size=2)
     
    0 =>
     
    array (size=1)
     
    0 => string 'family' (length=6)
     
    1 =>
     
    array (size=1)
     
    0 => string 'person' (length=6)
  • mysqli_fetch_row

    获取一条数据

    
    
     
    $sql = "SHOW TABLES";
     
    $res = $connect->query($sql);
     
    $data = $res->fetch_row(); # 或者 mysqli_fetch_row($res)
     
    # 输出结果
     
    array (size=1)
     
    0 => string 'family' (length=6)

5. 关闭连接


 
mysqli_close($connect);
 
// 或者
 
$connect->close();

本文来自博客园,作者:颖小主,转载请注明原文链接:https://www.cnblogs.com/yingxiaozhu/p/15239553.html



相关教程