从 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数据库中读取数据的示例。预处理语句可以提高查询的安全性,并且在多次执行相同的查询时可以提高性能。你可以根据自己的需求进行适当的修改和扩展。