mysqli 是 PHP 5+ 引入的 MySQL 增强扩展,支持预处理、多语句、面向对象 API 等新特性。本文演示扩展开启及两种连接模式完整代码。
编辑 php.ini,搜索并取消注释:
;extension=php_mysqli.dll
→ extension=php_mysqli.dll
重启 Web 服务(Apache/Nginx+PHP-FPM)生效。
<?php
$link = mysqli_connect('localhost', 'root', '', 'volunteer')
or die('Unable to connect: ' . mysqli_connect_error());
$sql = 'SELECT * FROM vol_msg';
$result = mysqli_query($link, $sql);
while ($row = mysqli_fetch_row($result)) {
echo $row[0] . PHP_EOL;
}
mysqli_free_result($result);
mysqli_close($link);
?>
<?php
$mysqli = new mysqli('localhost', 'root', '', 'volunteer');
if ($mysqli->connect_errno) {
die('Connect failed: ' . $mysqli->connect_error);
}
$sql = 'SELECT * FROM vol_msg';
$result = $mysqli->query($sql);
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
echo $row['id'] . ' ' . $row['msg'] . PHP_EOL;
}
$result->free();
$mysqli->close();
?>
$stmt = $mysqli->prepare('SELECT * FROM t WHERE id=?')mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) 自动抛异常mysqli_ping() 心跳检测两种风格功能等价,团队统一规范建议采用面向对象模式。