1.连接数据库
MySQLi扩展为PHP与数据库的连接提供了mysqli_connect()函数
mysqli mysqli_connect (
string $host = ini_get(‘mysqli.default_host’), // 主机名或IP
string $username = ini_get(‘mysqli.default_user’), // 用户名
string $passwd = ini_get(‘mysqli.default_pw’), // 密码
string $dbname = ‘’, // 数据库名
int $port = ini_get(‘mysqli.default_port’), // 端口号
string $socket = ini_get(‘mysqli.default_socket’) // socket通信
)
> 函数共有6个可选参数,省略时将自动使用php.ini中配置的默认值
> 连接成功时,该函数返回一个表示数据库连接的对象
> 连接失败时,函数返回false,并提示Warning级错误信息
> 参数$socket表示mysql.sock文件路径(用于Linux环境),通常不需要手动设置
2.执行SQL语句
在MySQLi扩展中,通常使用mysqli_query()函数发送SQL语句,获取执行结果。
mixed mysqli_query (
mysqli $link, // 数据库连接
string $query, // SQL语句
int $resultmode = MYSQLI_STORE_RESULT // 结果集模式(可选)
)
> $link表示通过mysqli_connect()函数获取的数据库连接
> $query表示SQL语句
执行SELECT、SHOW、DESCRIBE或EXPLAIN查询时,返回值是查询结果集,而执行其他查询,执行成功返回true,否则返回false。
此外,可选参数$resultmode表示结果集模式,其值可以是以下两种常量。
> MYSQLI_STORE_RESULT模式:会将结果集全部读取到PHP端
> MYSQLI_USE_RESULT模式:仅初始化结果集检索,在处理结果集时进行数据读取。
3.处理结果集
函数mysqli_query()在执行SELECT、SHOW、EXPLAIN或DESCRIBE的SQL语句后,返回的是一个资源类型的结果集。因此,需使用函数从结果集中获取信息。
函数名 | 描述 |
---|---|
mysqli_num_rows() | 获取结果中行的数量 |
mysqli_fetch_all() | 获取所有的结果,并以数组方式返回 |
mysqli_fetch_array() | 获取一行结果,并以数组方式返回 |
mysqli_fetch_assoc() | 获取一行结果并以关联数组返回 |
mysqli_fetch_row() | 获取一行结果并以索引数组返回 |
> 函数mysqli_fetch_all()和mysqli_fetch_array()的返回值,都支持关联数组和索引数组两种形式
> 第1个参数表示结果集
> 第2个参数是可选参数,用于设置返回的数组形式,其值是一个常量
函数mysqli_fetch_all()和mysqli_fetch_array()的返回常量。
> MYSQLI_ASSOC:表示返回的结果是一个关联数组
> MYSQLI_NUM:表示返回的结果是一个索引数组
> MYSQLI_BOTH:表示返回的结果中包含关联和索引数组,该常量为默认值
4.其他操作函数
MySQLi扩展不仅为PHP连接数据库、执行SQL语句提供了函数,还为方便开发提供很多其他常用的操作函数。
例如,获取插入操作时产生的ID号、SQL语句中特殊字符的转义等。
函数名 | 描述 |
---|---|
mysqli_insert_id() | 获取上一次插入操作时产生的ID号 |
mysqli_affected_rows() | 获取上一次操作时受影响的行数 |
mysqli_real_escape_string() | 用于转义SQL语句字符串中的特殊字符 |
mysqli_error() | 返回最近函数调用的错误代码 |
mysqli_free_result() | 释放结果集 |
mysqli_close() | 关闭数据库连接 |
> mysqli_free_result()函数用于释放结果集占用的系统内存资源
> mysqli_close()函数用于释放打开的数据库连接