学科分类
目录
PHP基础

MySQLi连接数据库

在使用PHP访问MySQL数据库之前,需要先连接数据库。MySQLi扩展为PHP连接数据库提供了mysqli_connect()函数,其声明方式如下所示。

mysqli_connect(
  host,     // 主机名或IP
  username,   // 用户名
  password,   // 密码
  dbname,    // 数据库名
  port,     // 端口号
  socket     // socket通信
)

在上述语法中,mysqli_connect()函数共有6个可选参数,当省略参数时,将自动使用php.ini中配置的默认值。连接成功时,该函数返回一个表示数据库连接的对象;连接失败时,函数返回false,并提示Warning级错误信息。其中,参数socket表示mysql.sock文件路径(用于Linux环境),通常不需要手动设置。

为了让读者更好地掌握mysqli_connect()函数的用法,接下来通过代码来演示如何进行数据库的连接,具体代码如下。

 1  <?php
 2  // 连接数据库
 3  $link = mysqli_connect('localhost', 'root', '123456', 'mydb', '3306');
 4  // 查看连接数据库是否正确
 5  echo $link ? '连接数据库成功' : '连接数据库失败';

在上述代码中,连接了MySQL服务器主机为localhost,用户为root,密码为123456,选择的数据库为mydb,端口号为3306。其中,在数据库连接时,若服务器的端口号为3306,则可以省略此参数。mysqli_connect()函数的返回值$link表示数据库连接。

接下来在浏览器中访问测试,成功时返回“连接数据库成功”的提示;但若是将密码修改为“test”,则会出现连接失败的提示信息,如图1所示。

img

图1 连接数据库失败

从图1中可以看出,当数据库连接失败时,mysqli_connect()函数给出的错误提示信息并不友好。为此,针对上述连接数据库的代码进行错误检查,修改连接数据库的代码,利用“@”屏蔽错误信息,让程序只输出指定的提示信息,具体代码如下。

 1  $link = @mysqli_connect('localhost', 'root', '123456', 'mydb', '3306');
 2  if (!$link) {
 3    exit(mysqli_connect_error());
 4  }

在上述代码中,如果数据库连接$link的值为false时,则执行第3行代码,使用exit()函数停止脚本运行,同时使用mysqli_connect_error()函数获取错误信息并输出。其中,mysqli_connect_error()函数用于返回上一次连接错误的描述信息,返回值是一个字符串,如果没有发生错误则返回值为NULL。

在使用PHP连接数据库后,还需要设置字符集,确保PHP与MySQL的连接使用相同的字符集UTF-8,具体代码如下。

 1  // 连接数据库
 2  $link = @mysqli_connect('localhost', 'root', '123456', 'mydb', '3306');
 3  if (!$link) {
 4    exit(mysqli_connect_error());
 5  }
 6  // 设置字符集
 7  if (!mysqli_set_charset($link, 'utf8')) {
 8    exit(mysqli_error($link));
 9  }

上述代码中,mysqli_set_charset()函数用来设置字符集,第1个参数表示数据库连接,第2个参数表示MySQL中的字符集。mysqli_error()函数用来在执行失败时返回错误信息。

点击此处
隐藏目录