当前位置:首页 > 数据库 > 正文

php怎么连数据库

P连接数据库通常使用 mysqli或 PDO扩展,使用 mysqli:先创建连接对象`$conn = new mysqli($servername, $username, $password, $dbname);

PHP连接数据库的详细方法及要点

在PHP开发中,连接数据库是实现数据存储、查询和操作的基础步骤,以下是关于PHP如何连接数据库的详细说明,涵盖常用方法、配置要点及最佳实践。

PHP连接数据库的两种主流方式

方式 PDO(推荐) MySQLi
适用场景 支持多种数据库(如MySQL、PostgreSQL、SQLite) 仅适用于MySQL
特性 统一接口、预处理语句、异常处理 面向对象/过程、事务支持、预处理语句
扩展依赖 需启用pdo_mysql扩展 需启用mysqli扩展

使用PDO连接数据库

  1. 安装与配置PDO扩展

    • 编辑php.ini文件,取消注释: extension=pdo_mysql
    • 重启Web服务器使配置生效。
  2. 连接参数配置

    $host = 'localhost'; // 数据库服务器地址 $dbname = 'testdb'; // 数据库名 $user = 'root'; // 用户名 $pass = 'password'; // 密码 $charset = 'utf8mb4'; // 字符集
  3. 建立连接

    php怎么连数据库 第1张

    $dsn = "mysql:host=$host;dbname=$dbname;charset=$charset"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // 异常模式 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 关联数组返回结果 PDO::ATTR_EMULATE_PREPARES => false, // 禁用模拟预处理 ]; try { $pdo = new PDO($dsn, $user, $pass, $options); echo "PDO连接成功"; } catch (PDOException $e) { die("连接失败: " . $e->getMessage()); }
  4. 执行操作示例

    // 查询数据 $stmt = $pdo->query('SELECT FROM users'); foreach ($stmt as $row) { echo $row['name'] . "n"; } // 插入数据(预处理) $sql = "INSERT INTO users (name, age) VALUES (?, ?)"; $pdo->prepare($sql)->execute(['John Doe', 30]);

使用MySQLi连接数据库

  1. 安装与配置MySQLi扩展

    • 编辑php.ini文件,取消注释: extension=mysqli
  2. 连接参数配置

    php怎么连数据库 第2张

  3. 建立连接(面向对象风格)

    $mysqli = new mysqli($servername, $username, $password, $dbname); if ($mysqli->connect_error) { die('连接失败: ' . $mysqli->connect_error); } echo "MySQLi连接成功";
  4. 执行操作示例

    // 查询数据 $result = $mysqli->query("SELECT FROM users"); while ($row = $result->fetch_assoc()) { echo $row['name'] . "n"; } // 关闭连接 $mysqli->close();
  5. 安全与最佳实践

    1. 配置文件分离

      • 将敏感信息存储在独立文件(如config.php): return [ 'host' => 'localhost', 'db' => 'testdb', 'user' => 'root', 'pass' => 'password', 'charset' => 'utf8mb4' ];
      • 主程序加载配置: $config = include 'config.php'; $pdo = new PDO("mysql:host={$config['host']};dbname={$config['db']}", $config['user'], $config['pass']);
    2. 防止SQL载入

      php怎么连数据库 第3张

      • 使用预处理语句绑定参数: // PDO示例 $stmt = $pdo->prepare('SELECT FROM users WHERE email = ?'); $stmt->execute([$email]);
      • 错误处理

        • PDO通过try-catch捕获异常: try { $pdo = new PDO(...); } catch (PDOException $e) { error_log($e->getMessage()); // 记录日志 die('数据库连接失败'); // 用户友好提示 }
        • MySQLi检查返回值或异常: if (!$conn) { die('连接错误: ' . mysqli_connect_error()); }
        • 字符集设置

          • 在连接时指定字符集(如utf8mb4),避免中文乱码。
          • 常见问题与解决方案

            问题 解决方案
            连接失败 检查MySQL服务是否启动,确认主机名、端口、用户名和密码正确。
            乱码问题 确保连接时设置正确的字符集(如utf8mb4)。
            权限不足 检查数据库用户是否拥有访问权限,远程连接需授权。

            FAQs

            如何选择PDO和MySQLi?

            • 如果需要支持多种数据库(如MySQL、PostgreSQL),优先选择PDO;
            • 如果仅针对MySQL且需要更细粒度的控制(如特定函数),可选MySQLi。

            如何避免数据库凭据泄露?

            • 将敏感信息存储在独立配置文件中,并设置文件权限(如chmod 600 config.php);

0