PHP中如何连接数据库并执行查询?

在 PHP 中,连接数据库并执行查询通常需要使用数据库扩展库。在大多数情况下,你可以使用以下两个扩展库:

  1. MySQLi(MySQL Improved):

    • MySQLi 是 MySQL 官方推荐的扩展库,提供了面向对象和面向过程两种方式。

    面向对象方式:

    php 复制代码
    $mysqli = new mysqli("localhost", "username", "password", "database");
    
    // 检查连接是否成功
    if ($mysqli->connect_error) {
        die("Connection failed: " . $mysqli->connect_error);
    }
    
    $sql = "SELECT * FROM your_table";
    $result = $mysqli->query($sql);
    
    // 处理查询结果
    while ($row = $result->fetch_assoc()) {
        // 处理每一行数据
    }
    
    // 关闭连接
    $mysqli->close();

    面向过程方式:

    php 复制代码
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 检查连接是否成功
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    
    $sql = "SELECT * FROM your_table";
    $result = mysqli_query($conn, $sql);
    
    // 处理查询结果
    while ($row = mysqli_fetch_assoc($result)) {
        // 处理每一行数据
    }
    
    // 关闭连接
    mysqli_close($conn);
  2. PDO(PHP Data Objects):

    • PDO 是一种通用的数据库访问层,支持多种数据库。它提供了一种统一的接口,可以使用不同的数据库驱动。
    php 复制代码
    $dsn = "mysql:host=localhost;dbname=database";
    $username = "username";
    $password = "password";
    
    try {
        $pdo = new PDO($dsn, $username, $password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
        $sql = "SELECT * FROM your_table";
        $stmt = $pdo->query($sql);
    
        // 处理查询结果
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            // 处理每一行数据
        }
    } catch (PDOException $e) {
        echo "Connection failed: " . $e->getMessage();
    } finally {
        // 关闭连接
        $pdo = null;
    }

上述示例中,你需要替换示例中的 "localhost"、"username"、"password" 和 "database" 为你的实际数据库连接信息。在实际应用中,为了安全性考虑,应该使用安全的数据库凭证,并考虑使用预处理语句来防止 SQL 注入攻击。

相关推荐
数据库小组2 小时前
2026 年,MySQL 到 SelectDB 同步为何更关注实时、可观测与可校验?
数据库·mysql·数据库管理工具·数据同步·ninedata·selectdb·迁移工具
华科易迅2 小时前
MybatisPlus增删改查操作
android·java·数据库
Kethy__3 小时前
计算机中级-数据库系统工程师-计算机体系结构与存储系统
大数据·数据库·数据库系统工程师·计算机中级
SHoM SSER3 小时前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
熬夜的咕噜猫3 小时前
MySQL备份与恢复
数据库·oracle
jnrjian4 小时前
recover database using backup controlfile until cancel 假recover,真一致
数据库·oracle
lifewange4 小时前
java连接Mysql数据库
java·数据库·mysql
大妮哟4 小时前
postgresql数据库日志量异常原因排查
数据库·postgresql·oracle
还是做不到嘛\.5 小时前
Dvwa靶场-SQL Injection (Blind)-基于sqlmap
数据库·sql·web安全
不写八个5 小时前
PHP教程004:php链接mysql数据库
数据库·mysql·php