随着互联网技术的不断发展,数据被誉为信息时代的新石油。而数据库则是数据存储、管理和检索的核心。在Web开发中,我们经常需要从数据库中获取数据,并对其进行处理、展示等操作,因此对数据库的操作能力成为了一名优秀的Web开发工程师所必备的技能之一。本文将介绍如何。
1. 连接数据库
在使用数据库前,我们需要先与数据库建立连接,以便进行后续的操作。PHP可以通过mysqli_connect()函数来连接数据库。该函数接受4个参数,分别是数据库地址、用户名、密码和数据库名称。下面是连接数据库的示例代码:
“`
$host = “localhost”; // 数据库地址
$user = “root”; // 用户名
$password = “password”; // 密码
$database = “test”; // 数据库名称
$conn = mysqli_connect($host, $user, $password, $database); // 连接数据库
if (!$conn) {
die(“连接失败: ” . mysqli_connect_error());
}
“`
2. 执行SQL语句
在与数据库建立连接后,我们需要执行SQL语句来获取数据。SQL(Structured Query Language)是用于操作关系型数据库的标准语言。PHP提供了许多用于执行SQL语句的函数,如mysqli_query()、mysqli_fetch_array()等。
(1)执行查询语句
我们可以使用mysqli_query()函数来执行SQL查询语句,并返回结果集。下面是一个执行查询语句的示例代码:
“`
$sql = “SELECT * FROM users”; // 查询语句
$result = mysqli_query($conn, $sql); // 执行查询
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
echo $row[“id”] . ” ” . $row[“name”] . ” ” . $row[“age”] . “
“; // 输出查询结果
}
} else {
echo “0 结果”;
}
“`
以上代码会查询users表中所有数据,并输出id、name、age三个字段的值。
(2)执行插入、更新、删除语句
除了执行查询语句外,我们还可以使用mysqli_query()函数执行插入、更新、删除等操作。下面是几个常用的SQL语句示例:
插入语句:
“`
$sql = “INSERT INTO users (name, age) VALUES (‘John’, 25)”;
if (mysqli_query($conn, $sql)) {
echo “新纪录插入成功”;
} else {
echo “插入失败: ” . mysqli_error($conn);
}
“`
更新语句:
“`
$sql = “UPDATE users SET age = ’30’ WHERE name = ‘John’”;
if (mysqli_query($conn, $sql)) {
echo “更新成功”;
} else {
echo “更新失败: ” . mysqli_error($conn);
}
“`
删除语句:
“`
$sql = “DELETE FROM users WHERE name = ‘John’”;
if (mysqli_query($conn, $sql)) {
echo “记录删除成功”;
} else {
echo “删除失败: ” . mysqli_error($conn);
}
“`
3. 使用PDO访问数据库
除了mysqli扩展外,PHP还提供了PDO(PHP Data Objects)扩展,它是一个轻量级、灵活性高的数据库访问层。使用PDO还可以避免SQL注入等安全问题。下面是连接数据库和执行查询语句的PDO示例代码:
“`
$host = “localhost”; // 数据库地址
$user = “root”; // 用户名
$password = “password”; // 密码
$database = “test”; // 数据库名称
$dsn = “mysql:host=$host;dbname=$database;charset=utf8mb4”;
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
);
try {
$pdo = new PDO($dsn, $user, $password, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
$sql = “SELECT * FROM users”; // 查询语句
$stmt = $pdo->prepare($sql);
$stmt->execute();
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch()) {
echo $row[“id”] . ” ” . $row[“name”] . ” ” . $row[“age”] . “
“; // 输出查询结果
}
} else {
echo “0 结果”;
}
“`
以上代码使用了PDO连接数据库,并执行了查询语句,输出查询结果。
综上所述,PHP提供了丰富的数据库访问扩展和函数,可以轻松地遍历数据库并获取想要的信息。开发者只需要根据需求选择适当的扩展或函数,便可以快速、高效地完成与数据库相关的开发工作。
相关问题拓展阅读:
- 发现PHP查询MYSQL,遍历结果,会出现2倍数据(数据库1行数据2列,遍历输出4列)
发现PHP查询MYSQL,遍历结果,会出现2倍数据(数据库1行数据2列,遍历输出4列)
是你用蔽咐的函数宏铅纯问题换成mysql_fetch_assoc试一下! mysql_fetch_array是已关联索引数组取出激销!换了百分之百行
问题出在mysql_fetch_array这一步,此方法的第二个参数表示你要获取的数组的类型碧链
MYSQL_ASSOC 关联数组,就是键名是id,name的
MYSQL_NUM 索引数组,键名是数字的
MYSQL_BOTH 以上悔好孙两种都有
不给第二个参数的袜纳话,默认是MYSQL_BOTH,所以就出现了你上面的结果
mysqli_fetch_all($res)解决
问题问得挺好,我也遇到了同样的问题。但我是双层循环订单信息(订单表和订单详情表有关联),然后最外层循环mysql语句套用了select from 订单表 join 订乎弊世裤单详情表 on语句,出岁返族现了双倍的数据。
原来$ssq=”SELECT * FROM orders AS o JOIN orderdetails as ods ON o.order_number=ods.order_number Where o.userid=$u”;
改为$ssq=”SELECT * FROM orders AS o Where o.userid=$u”;
while ($row = mysqli_fetch_assoc($result)){
?>
你的不是双循环,奇怪了。
反正去掉了join on,数据库是一条记录,页面显示也是一条记录了(原来是显示两条记录),你将多余的东西用引号注释掉,排查排查,或者换一种思路。
php 遍历数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php 遍历数据库,使用PHP轻松遍历数据库,快速获取想要的信息,发现PHP查询MYSQL,遍历结果,会出现2倍数据(数据库1行数据2列,遍历输出4列)的信息别忘了在本站进行查找喔。