PHP MySQL 读取数据

从 MySQL 数据库读取数据

要从MySQL数据库中读取数据,你可以使用PHP中的MySQLi或PDO扩展。下面是使用MySQLi和PDO分别读取数据的示例:

使用MySQLi扩展:

<?php
    // 数据库连接参数
    $servername = "localhost";
    $username = "your_username";
    $password = "your_password";
    $dbname = "your_database";

    // 创建数据库连接
    $conn = new mysqli($servername, $username, $password, $dbname);

    // 检查连接是否成功
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }

    // 执行查询语句
    $sql = "SELECT * FROM mytable";
    $result = $conn->query($sql);

    // 检查是否有结果
    if ($result->num_rows > 0) {
        // 输出数据
        while ($row = $result->fetch_assoc()) {
            echo "姓名:" . $row["name"] . ", 年龄:" . $row["age"] . "<br>";
        }
    } else {
        echo "0 结果";
    }

    // 关闭数据库连接
    $conn->close();
?>

使用PDO扩展:

<?php
    // 数据库连接参数
    $servername = "localhost";
    $username = "your_username";
    $password = "your_password";
    $dbname = "your_database";

    // 创建数据库连接
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

    // 设置错误处理模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 执行查询语句
    $sql = "SELECT * FROM mytable";
    $result = $conn->query($sql);

    // 检查是否有结果
    if ($result->rowCount() > 0) {
        // 输出数据
        foreach ($result as $row) {
            echo "姓名:" . $row["name"] . ", 年龄:" . $row["age"] . "<br>";
        }
    } else {
        echo "0 结果";
    }

    // 关闭数据库连接
    $conn = null;
?>

以上示例中,我们首先创建了一个数据库连接,在连接字符串中指定了主机名、用户名、密码和数据库名。

然后,我们执行了一个查询语句,并通过query方法获取结果集。在MySQLi中,我们使用num_rows属性来检查是否有结果,并使用fetch_assoc方法从结果集中获取每一行的数据。在PDO中,我们使用rowCount方法来获取结果集中的行数,并使用foreach循环遍历结果集。

最后,我们关闭了数据库连接。

无论是使用MySQLi还是PDO,这些示例都可以帮助你从MySQL数据库中读取数据。

使用 MySQLi

当使用MySQLi扩展从MySQL数据库中读取数据时,你可以按照以下步骤进行操作:

<?php
    // 数据库连接参数
    $servername = "localhost";
    $username = "your_username";
    $password = "your_password";
    $dbname = "your_database";

    // 创建数据库连接
    $conn = new mysqli($servername, $username, $password, $dbname);

    // 检查连接是否成功
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }

    // 执行查询语句
    $sql = "SELECT * FROM mytable";
    $result = $conn->query($sql);

    // 检查是否有结果
    if ($result->num_rows > 0) {
        // 输出数据
        while ($row = $result->fetch_assoc()) {
            echo "姓名:" . $row["name"] . ", 年龄:" . $row["age"] . "<br>";
        }
    } else {
        echo "0 结果";
    }

    // 关闭数据库连接
    $conn->close();
?>

在这个示例中,我们首先创建了一个MySQLi对象,使用指定的主机名、用户名、密码和数据库名进行连接。

然后,我们检查连接是否成功。如果连接失败,我们使用die函数输出错误消息并终止脚本的执行。

接下来,我们执行了一个查询语句,并通过query方法获取结果集。在这个例子中,我们选择了mytable表中的所有数据。

然后,我们检查是否有结果。如果结果集中有行数大于0,我们使用fetch_assoc方法从结果集中获取每一行的关联数组,并输出相应的数据。如果结果集为空,我们输出”0 结果”。

最后,我们关闭了数据库连接。

这是一个简单的使用MySQLi扩展从MySQL数据库中读取数据的示例。你可以根据自己的需求进行适当的修改和扩展。

使用 PDO (+ 预处理

当使用PDO扩展从MySQL数据库中读取数据时,可以结合预处理语句来提高安全性和性能。下面是一个使用PDO扩展和预处理语句的示例:

<?php
    // 数据库连接参数
    $servername = "localhost";
    $username = "your_username";
    $password = "your_password";
    $dbname = "your_database";

    try {
        // 创建数据库连接
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

        // 设置错误处理模式为异常
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        // 准备查询语句
        $stmt = $conn->prepare("SELECT * FROM mytable WHERE age > :age");

        // 绑定参数
        $age = 18;
        $stmt->bindParam(':age', $age);

        // 执行查询
        $stmt->execute();

        // 检查是否有结果
        if ($stmt->rowCount() > 0) {
            // 输出数据
            while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                echo "姓名:" . $row["name"] . ", 年龄:" . $row["age"] . "<br>";
            }
        } else {
            echo "0 结果";
        }

    } catch(PDOException $e) {
        echo "错误: " . $e->getMessage();
    }

    // 关闭数据库连接
    $conn = null;
?>

在这个示例中,我们首先创建了一个PDO对象,使用指定的主机名、用户名、密码和数据库名进行连接。

然后,我们设置错误处理模式为异常,以便在出现错误时抛出异常。

接下来,我们准备了一个查询语句,使用占位符 :age 来代替实际的值。

然后,我们使用 bindParam 方法绑定参数,将 $age 变量绑定到 :age 占位符上。这样可以防止SQL注入攻击。

接着,我们执行查询,使用 execute 方法来执行准备好的查询语句。

然后,我们检查是否有结果。如果结果集中有行数大于0,我们使用 fetch 方法从结果集中获取每一行的关联数组,并输出相应的数据。如果结果集为空,我们输出 “0 结果”。

最后,我们关闭了数据库连接。

这是一个使用PDO扩展和预处理语句从MySQL数据库中读取数据的示例。预处理语句可以提高查询的安全性,并且在多次执行相同的查询时可以提高性能。你可以根据自己的需求进行适当的修改和扩展。

Leave a Reply 0

Your email address will not be published. Required fields are marked *