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所示。
图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()函数用来在执行失败时返回错误信息。