第一部分:考点与作答区
考点:
- PDO 扩展的基本概念
- 数据库连接的建立
- 执行SQL查询
作答区: 编写一个PHP程序,完成以下要求:
- 连接到一个名为
my_database
的MySQL数据库。 - 创建一个名为
my_table
的表,其中包含id
、name
和age
三个字段。 - 向
my_table
表中插入一条记录,其中id
为1,name
为 “John”,age
为 30。 - 查询
my_table
表中的所有记录,并打印结果。
请在下方空白处编写代码:
// 在此处编写代码
第二部分:解题思路与答案
解题思路:
- 首先,了解PDO扩展的基本概念。PDO是PHP的一个扩展,用于与各种数据库进行交互。
- 建立数据库连接。使用
new PDO()
函数连接到MySQL数据库,需要提供数据库的DSN(数据源名称)、用户名和密码。 - 创建表。使用PDO的预处理语句来执行SQL语句来创建表。
- 插入记录。使用PDO的预处理语句来执行SQL语句来插入记录。
- 查询记录。使用PDO的预处理语句来执行SQL语句来查询记录,并使用PDO的
fetchAll()
方法获取所有记录。
答案:
<?php
// 数据库配置
$host = 'localhost';$db_name = 'my_database';
$username = 'root';$password = '';
$dsn = "mysql:host=$host;dbname=$db_name";
// 连接到MySQL数据库
try {
$conn = new PDO($dsn, $username,$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
exit;
}
// 创建名为 my_table 的表
$create_table_query = "CREATE TABLE my_table (id INT PRIMARY KEY, name VARCHAR(50), age INT)";$conn->exec($create_table_query);
// 向 my_table 表中插入一条记录
$insert_query = "INSERT INTO my_table (id, name, age) VALUES (1, 'John', 30)";$conn->exec($insert_query);
// 查询 my_table 表中的所有记录
$query = "SELECT * FROM my_table";$result = $conn->query($query);
$rows =$result->fetchAll(PDO::FETCH_ASSOC);
// 打印查询结果
foreach ($rows as$row) {
echo "ID: " . $row['id'] . ", Name: " .$row['name'] . ", Age: " . $row['age'] . "<br>";
}
// 关闭数据库连接
$conn = null;
?>
在这段代码中,我们首先定义了数据库配置,包括主机名、用户名、密码和数据库名,以及DSN。然后,我们使用 new PDO()
函数连接到MySQL数据库,并设置错误模式为异常模式。接着,我们使用PDO的预处理语句来创建表、插入记录和查询记录。最后,我们使用PDO的fetchAll()
方法获取所有记录,并打印结果。通过这种方式,我们展示了PDO扩展的基本用法。
第三部分:扩展考点与扩展作答区
扩展考点:
- PDO的数据库驱动
- PDO的事务处理
扩展作答区: 在原有程序的基础上,增加以下功能:
- 讨论PDO的数据库驱动,以及如何选择合适的驱动。
- 演示如何使用PDO的事务处理。
请在下方空白处编写代码:
// 在此处编写代码
第四部分:扩展解答思路和答案
扩展解答思路:
- 首先,了解PDO的数据库驱动。PDO支持多种数据库驱动,包括MySQL、SQLite、PostgreSQL等。选择合适的驱动取决于你使用的数据库类型。
- 讨论PDO的事务处理。PDO的事务处理功能允许你在一次数据库操作中执行多个SQL语句,要么全部成功执行,要么全部失败回滚。这可以确保数据的一致性和完整性。
- 演示事务处理。在原有代码中,我们使用PDO的
beginTransaction()
函数开始一个事务,然后使用exec()
函数执行SQL语句。在所有SQL语句执行完毕后,我们使用commit()
函数提交事务。
答案:
<?php
// 数据库配置
$host = 'localhost';$db_name = 'my_database';
$username = 'root';$password = '';
$dsn = "mysql:host=$host;dbname=$db_name";
// 连接到MySQL数据库
try {
$conn = new PDO($dsn, $username,$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
exit;
}
// 创建名为 my_table 的表
$create_table_query = "CREATE TABLE my_table (id INT PRIMARY KEY, name VARCHAR(50), age INT)";$conn->exec($create_table_query);
// 向 my_table 表中插入一条记录
$insert_query = "INSERT INTO my_table (id, name, age) VALUES (1, 'John', 30)";$conn->exec($insert_query);
// 开始事务
$conn->beginTransaction();
// 查询 my_table 表中的所有记录
$query = "SELECT * FROM my_table";$result = $conn->query($query);
$rows =$result->fetchAll(PDO::FETCH_ASSOC);
// 打印查询结果
foreach ($rows as$row) {
echo "ID: " . $row['id'] . ", Name: " .$row['name'] . ", Age: " . $row['age'] . "<br>";
}
// 提交事务
$conn->commit();
// 关闭数据库连接
$conn = null;
?>
www.pdsrzzp.com
www.smxmcrcw.com
www.sqmqrc.com
www.xxcyrc.com
www.xygsrc.com
在这段代码中,我们首先定义了数据库配置,并使用 new PDO()
函数连接到MySQL数据库,并设置错误模式为异常模式。接着,我们使用PDO的预处理语句来创建表、插入记录和查询记录。然后,我们使用PDO的beginTransaction()
函数开始一个事务,并在所有SQL语句执行完毕后使用commit()
函数提交事务。通过这种方式,我们展示了PDO的事务处理功能。同时,我们也讨论了PDO的数据库驱动,以及如何选择合适的驱动。