PHP MySQL 读取数据


PHP MySQL 读取数据技术文档

1. 连接数据库

在 PHP 中连接 MySQL 数据库,需要使用 MySQLi 或者 PDO 扩展。这里以 MySQLi 为例。

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

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

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

2. 查询数据

在 PHP 中查询 MySQL 数据,需要使用 SQL 语句。最基本的查询语句是 SELECT,它可以用来获取 MySQL 数据表中的数据。

$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Name: " . $row["username"]. " - E-mail: " . $row["email"]. "<br>";
    }
} else {
    echo "0 结果";
}

3. 结果集处理

MySQL 数据库返回的查询结果是一组数据,PHP 中使用的处理结果集的方式大致如下:

3.1. fetch_assoc()

获取一行结果集,以关联数组的形式返回。

while($row = $result->fetch_assoc()) {
    echo "ID: " . $row["id"]. " - Name: " . $row["username"]. " - E-mail: " . $row["email"]. "<br>";
}

3.2. fetch_row()

获取一行结果集,以数字索引数组的形式返回。

while($row = $result->fetch_row()) {
    echo "ID: " . $row[0]. " - Name: " . $row[1]. " - E-mail: " . $row[2]. "<br>";
}

3.3. fetch_array()

获取一行结果集,以关联和数字索引的形式返回。

while($row = $result->fetch_array()) {
    echo "ID: " . $row["id"]. " - Name: " . $row[1]. " - E-mail: " . $row["email"]. "<br>";
}

4. 参数化查询

在 PHP 中,使用参数化查询可以有效地防止 SQL 注入攻击,并且提高查询效率。参数化查询可以通过 prepare()bind_param() 方法实现。

$sql = "SELECT * FROM users WHERE username = ? AND password = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $username, $password);

// 设置参数
$username = "admin";
$password = "123456";

$stmt->execute();
$result = $stmt->get_result();

5. 关闭连接

当查询完成后,需要及时关闭与数据库的连接。使用 close() 方法可以关闭连接。

$conn->close();

以上就是使用 PHP 连接 MySQL 数据库,并且读取数据的基本方法。在编写应用程序时,还需要参考具体的业务需求,灵活选择相关技术。