首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

PHP 开启 mysqli 扩展后的两种数据库连接方式详解

     編輯:MySQL 資料庫相關知識

PHP mysqli 扩展启用与双模式连接实战

mysqli 是 PHP 5+ 引入的 MySQL 增强扩展,支持预处理、多语句、面向对象 API 等新特性。本文演示扩展开启及两种连接模式完整代码。

一、开启 mysqli 扩展

编辑 php.ini,搜索并取消注释:

;extension=php_mysqli.dll
→ extension=php_mysqli.dll

重启 Web 服务(Apache/Nginx+PHP-FPM)生效。

二、核心新特性

  • 预处理语句(Prepare)防 SQL 注入
  • 错误代码精准定位
  • 多语句批量执行
  • 面向对象 API(推荐)

三、方式一:面向过程风格(兼容旧代码)

<?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() 心跳检测

两种风格功能等价,团队统一规范建议采用面向对象模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved