PHP学习笔记之三数据库基本操作

教程大全 2026-02-23 18:11:08 浏览

PHP学习笔记之三数据库基本操作

PHP学习笔记之三数据库基本操作

在PHP开发中,数据库操作是核心技能之一,通过数据库,我们可以实现数据的存储、查询、更新和删除等操作,本文将介绍PHP中常用的数据库操作方法,包括连接数据库、执行Sql语句、处理查询结果以及防止SQL注入等内容。

连接数据库

PHP提供了多种方式连接数据库,其中最常用的是GET="_blank">MySQLi和PDO扩展,MySQLi是专门为MySQL设计的,而PDO则支持多种数据库类型。

使用MySQLi连接数据库的示例代码如下:

$host = 'localhost';$username = 'root';$password = '';$database = 'test_db';$conn = new mysqli($host, $username, $password, $database);if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);}echo "连接成功";

使用PDO连接数据库的示例代码如下:

try {$pdo = new PDO("mysql:host=$host;dbname=$database", $username, $password);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);echo "连接成功";} catch (PDOException $e) {die("连接失败: " . $e->getMessage());}

执行SQL语句

连接数据库后,可以通过或方法执行SQL语句。通常用于返回结果集的查询(如SELECT),而用于执行不返回结果的语句(如INSERT、UPDATE、DELETE)。

1 查询数据

使用MySQLi查询数据:

$sql = "SELECT * FROM users";$result = $conn->query($sql);if ($result->num_rows > 0) {while ($row = $result->fetch_assoc()) {echo "ID: " . $row["id"] . " Name: " . $row["name"] . "
";}} else {echo "0 结果";}

使用PDO查询数据:

$sql = "SELECT * FROM users";$stmt = $pdo->query($sql);while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {echo "ID: " . $row["id"] . " Name: " . $row["name"] . "
";}

2 插入、更新和删除数据

使用MySQLi插入数据

$sql = "INSERT INTO users (name, email) VALUES ('John', 'john@example.com')";if ($conn->query($sql) === TRUE) {echo "新记录插入成功";} else {echo "Error: " . $sql . "
" . $conn->error;}

使用PDO插入数据:

$sql = "INSERT INTO users (name, email) VALUES ('Jane', 'jane@example.com')";$pdo->exec($sql);echo "新记录插入成功";

防止SQL注入

SQL注入是一种常见的网络安全漏洞,攻击者可以通过恶意输入破坏数据库,为了防止SQL注入,应使用预处理语句(Prepared statements)。

使用MySQLi预处理语句:

$stmt = $conn->prepare("SELECT * FROM users WHERE name = ?");$stmt->bind_param("s", $name);$name = "John";$stmt->execute();$result = $stmt->get_result();while ($row = $result->fetch_assoc()) {echo "ID: " . $row["id"] . " Name: " . $row["name"] . "
";}$stmt->close();

使用PDO预处理语句:

$stmt = $pdo->prepare("SELECT * FROM users WHERE name = :name");$stmt->bindParam(':name', $name);$name = "John";$stmt->execute();while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {echo "ID: " . $row["id"] . " Name: " . $row["name"] . "
";}

关闭数据库连接

操作完成后,应及时关闭数据库连接以释放资源。

使用MySQLi关闭连接:

$conn->close();

使用PDO关闭连接:

$pdo = null;

相关问答FAQs

Q1: MySQLi和PDO有什么区别? A1: MySQLi是专门为MySQL设计的,功能较为集中,而PDO支持多种数据库类型(如MySQL、PostgreSQL、SQLite等),具有更好的兼容性,PDO提供了更统一的API接口,适合需要切换数据库的场景。

Q2: 如何选择使用MySQLi还是PDO? A2: 如果项目仅使用MySQL数据库,且不需要跨数据库支持,可以选择MySQLi;如果项目可能需要切换数据库类型,或者希望代码更具通用性,推荐使用PDO,PDO的预处理语句语法更简洁,适合初学者使用。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐