PHP MySQL 读取数据
2023-09-14 09:04:54 时间
从 MySQL 数据库读取数据
SELECT 语句用于从数据表中读取数据:
SELECT column_name(s) FROM table_name
我们可以使用 * 号来读取所有数据表中的字段:
SELECT * FROM table_name
如需学习更多关于 SQL 的知识,请访问我们的 SQL 教程。
使用 MySQLi
以下实例中我们从 myDB 数据库的 MyGuests 表读取了 id, firstname 和 lastname 列的数据并显示在页面上:
实例 (MySQLi - 面向对象)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
$conn->close();
?>
以上代码解析如下:
首先,我们设置了 SQL 语句从 MyGuests数据表中读取 id, firstname 和 lastname 三个字段。之后我们使用该 SQL 语句从数据库中取出结果集并赋给复制给变量 $result。
函数 num_rows() 判断返回的数据。
如果返回的是多条数据,函数 fetch_assoc() 将结合集放入到关联数组并循环输出。 while() 循环出结果集,并输出 id, firstname 和 lastname 三个字段值。
以下实例使用 MySQLi 面向过程的方式,效果类似以上代码:
实例 (MySQLi - 面向过程)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// 输出数据
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
mysqli_close($conn);
?>
使用 PDO (+ 预处理)
以下实例使用了预处理语句。
选取了 MyGuests 表中的 id, firstname 和 lastname 字段,并放到 HTML 表格中:
实例 (PDO)
<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
$stmt->execute();
// 设置结果集为关联数组
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
相关文章
- 如何使用PHP连接MySQL数据库(php如何关联mysql)
- MySQL 自增长主键:用于数据库行创建(mysql自增长主键)
- PHP操作MySQL数据库:实现快速连接(php连接数据库mysql)
- 技术实现的网络系统PHP和MySQL结合:搭建网络系统的利器.(基于php和mysql)
- 数据库如何修改MySQL数据库中的数据(修改mysql)
- PHP专业连接MySQL:实现快速代码.(php连接mysql数据库代码)
- PHP实现从MySQL数据库中读取信息(php读取mysql数据)
- 分钟结合简单快捷:PHP跟MySQL搭配,5分钟搞定!(php与mysql5)
- 数据库快速修改MySQL数据库:使用PHP进行快速修改(php修改mysql)
- MySQL表连接:深入解析(mysql的表连接)
- 一步步获取 PHP 导入 MySQL 无忧(php导入mysql)
- MySQL物化视图技术简介(mysql物化视图)
- PHP如何正确输出MySQL中文字符避免乱码?(php输出mysql乱码)
- PHP如何关闭MySQL数据库连接(php关闭mysql连接)
- PHP与MySQL:如何实现连接?(php怎么连mysql)
- MySQL服务连接错误10061:解决方法指南(mysql事件10061)
- PHP添加MySQL扩展:快速实现数据库连接(php添加mysql扩展)
- MySQL中如何实现表关联删除操作?(mysql表关联删除)
- MySQL数据库复制方法。(mysql数据库如何拷贝)
- 防止MySQL注入攻击,PHP静态解决方案(mysql防注入 php)
- MySQL查询空:如何在MySQL数据库中查询空值?(mysql查询空)
- MySQL表空间的定义和作用浅析(mysql中什么是表空间)
- 为b2c商城搭建MySQL稳定存储系统(b2c商城mysql)
- MySQL与PHP如何使用PN库进行高效数据处理(mysql_pn)
- MySQL连接类型下的事务处理(mysql不同连接的事务)
- MySQL日期比较如何对比两个日期(mysql两日期对比)
- MySQL连接查询出现错误的解决方法(mysql不能用连接查询)
- 无需配置安装,轻松使用MySQL(mysql不弹出配置安装)