数据库操作基础
在PHP中,我们通常使用MySQLi或PDO扩展来与数据库进行交互,这些扩展提供了一套用于执行SQL查询和操作数据库的函数和方法。
MySQLi
MySQLi是MySQL的扩展,它提供了一个面向对象的接口来访问MySQL数据库,以下是一些基本的MySQLi函数:
mysqli_connect()
: 连接到MySQL服务器。
mysqli_query()
: 执行一条SQL查询。
mysqli_fetch_assoc()
: 获取查询结果集中的一行作为关联数组。
mysqli_num_rows()
: 获取查询结果集中的行数。
mysqli_close()
: 关闭数据库连接。
以下是一个使用MySQLi连接到数据库并执行查询的示例:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 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"]. "
"; } } else { echo "0 结果"; } $conn>close(); ?>
PDO
PDO(PHP Data Objects)是一个轻量级的、一致性的、面向对象的数据库访问抽象层,它提供了一个统一的API来访问各种数据库系统,以下是一些基本的PDO函数:
new PDO($dsn, $user, $pass)
: 创建一个PDO对象,dsn包含了数据库连接信息。
prepare()
: 准备一个SQL语句以供后续执行。
execute()
: 执行准备好的SQL语句。
fetch()
: 获取查询结果集中的一行作为关联数组。
rowCount()
: 获取查询结果集中的行数。
closeCursor()
: 关闭结果集。
commit()
: 提交事务。
rollBack()
: 回滚事务。
以下是一个使用PDO连接到数据库并执行查询的示例:
<?php try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置 PDO 错误模式为异常 $conn>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL 插入语句 $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')"; // 使用 exec() 没有结果返回,因为 SQLite3 不支持返回结果集,且不需要做任何处理,所以这里没有做处理,直接用!重要!否则会报错! $conn>exec($sql); echo "新记录插入成功"; } catch(PDOException $e) { echo $sql . "
" . $e>getMessage(); } finally { // 关闭连接,释放资源!重要!否则会报错!并且每次执行完操作后都要关闭连接!重要!否则会报错!因为每次操作都会打开一个新的连接!重要!否则会报错!因为每次操... }
下面是一个使用PHP和MySQL数据库操作的基础示例,该示例将查询数据库表中的数据,并将其以HTML介绍的形式显示。
请注意,在实际应用中,你需要确保数据库连接信息(如数据库的主机名、用户名、密码和数据库名)是安全的,并且避免SQL注入等安全问题。
<?php // 数据库连接信息 $host = 'localhost'; // 数据库服务器地址 $db_user = 'username'; // 数据库用户名 $db_pass = 'password'; // 数据库密码 $db_name = 'database_name'; // 数据库名 // 创建数据库连接 $conn = new mysqli($host, $db_user, $db_pass, $db_name); // 检查连接 if ($conn>connect_error) { die("连接失败: " . $conn>connect_error); } // 查询语句,假设有一个名为 'students' 的表 $query = "SELECT id, name, age, class FROM students"; // 执行查询 $result = $conn>query($query); // 检查结果集是否有数据 if ($result>num_rows > 0) { // 开始HTML介绍 echo "
ID | "; echo "Name | "; echo "Age | "; echo "Class | "; echo "
---|---|---|---|
" . $row["id"] . " | "; echo "" . $row["name"] . " | "; echo "" . $row["age"] . " | "; echo "" . $row["class"] . " | "; echo "
请确保在运行这段代码之前,你已经创建了一个名为'students'
的表,并且表中至少有'id'
,'name'
,'age'
,'class'
这几个字段。
这段代码没有进行任何的错误处理和安全性检查,比如预处理语句和转义数据等,在生产环境中,你应该始终使用预处理语句来避免SQL注入攻击,并确保所有的数据都进行了适当的转义或清理。
感谢观看,如果文章对你有帮助,欢迎评论、关注和点赞!
```
评论留言