创建一个名为 Books 的数据库,并在其中建立一个名为 book _ message 的表,字段包括书名、作者、出版社、出版时间和价格。编写一个应用程序,用预处理方式在该数据库中实现增加、删除和修改数据以及查询的基本功能具体操作
时间: 2023-11-27 20:55:15 浏览: 228
首先,我们需要在 MySQL 中创建一个名为 Books 的数据库:
```sql
CREATE DATABASE Books;
```
然后切换到该数据库:
```sql
USE Books;
```
接着,我们可以创建一个名为 book_message 的表:
```sql
CREATE TABLE book_message (
id INT PRIMARY KEY AUTO_INCREMENT,
book_name VARCHAR(50) NOT NULL,
author VARCHAR(50) NOT NULL,
publisher VARCHAR(50) NOT NULL,
publish_time DATE NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
```
上述代码中,我们定义了 6 个字段,其中 id 是自增主键,book_name、author、publisher、publish_time 和 price 分别表示书名、作者、出版社、出版时间和价格。
接下来,我们就可以编写应用程序来实现对数据库的增删改查操作了。以下是一个简单的 PHP 程序示例,可以执行基本的增删改查操作:
```php
<?php
// 连接数据库
$conn = mysqli_connect('localhost', 'root', 'password', 'Books');
// 检查连接是否成功
if (!$conn) {
die('连接失败: ' . mysqli_connect_error());
}
// 添加新记录
$sql = "INSERT INTO book_message (book_name, author, publisher, publish_time, price) VALUES ('Python基础教程', 'Magnus Lie Hetland', '人民邮电出版社', '2020-01-01', 49.99)";
if (mysqli_query($conn, $sql)) {
echo "添加记录成功\n";
} else {
echo "添加记录失败: " . mysqli_error($conn) . "\n";
}
// 更新记录
$sql = "UPDATE book_message SET price = 59.99 WHERE book_name = 'Python基础教程'";
if (mysqli_query($conn, $sql)) {
echo "更新记录成功\n";
} else {
echo "更新记录失败: " . mysqli_error($conn) . "\n";
}
// 删除记录
$sql = "DELETE FROM book_message WHERE book_name = 'Python基础教程'";
if (mysqli_query($conn, $sql)) {
echo "删除记录成功\n";
} else {
echo "删除记录失败: " . mysqli_error($conn) . "\n";
}
// 查询记录
$sql = "SELECT * FROM book_message";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo "书名: " . $row["book_name"] . ", 作者: " . $row["author"] . ", 出版社: " . $row["publisher"] . ", 出版时间: " . $row["publish_time"] . ", 价格: " . $row["price"] . "\n";
}
} else {
echo "没有记录\n";
}
// 关闭连接
mysqli_close($conn);
?>
```
在这个示例程序中,我们首先使用 mysqli_connect() 函数连接到 MySQL 数据库。然后,我们执行添加新记录、更新记录、删除记录和查询记录的操作。最后,我们使用 mysqli_close() 函数关闭数据库连接。
需要注意的是,上述示例程序中的 SQL 语句都是硬编码在程序中的,这样不便于维护和修改。为了更好地组织 SQL 语句,我们可以使用预处理语句。以下是一个使用预处理语句的示例程序:
```php
<?php
// 连接数据库
$conn = mysqli_connect('localhost', 'root', 'password', 'Books');
// 检查连接是否成功
if (!$conn) {
die('连接失败: ' . mysqli_connect_error());
}
// 添加新记录
$stmt = mysqli_prepare($conn, "INSERT INTO book_message (book_name, author, publisher, publish_time, price) VALUES (?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, "ssssd", $book_name, $author, $publisher, $publish_time, $price);
$book_name = "Java基础教程";
$author = "李刚";
$publisher = "电子工业出版社";
$publish_time = "2020-01-01";
$price = 59.99;
if (mysqli_stmt_execute($stmt)) {
echo "添加记录成功\n";
} else {
echo "添加记录失败: " . mysqli_error($conn) . "\n";
}
// 更新记录
$stmt = mysqli_prepare($conn, "UPDATE book_message SET price = ? WHERE book_name = ?");
mysqli_stmt_bind_param($stmt, "ds", $price, $book_name);
$book_name = "Java基础教程";
$price = 69.99;
if (mysqli_stmt_execute($stmt)) {
echo "更新记录成功\n";
} else {
echo "更新记录失败: " . mysqli_error($conn) . "\n";
}
// 删除记录
$stmt = mysqli_prepare($conn, "DELETE FROM book_message WHERE book_name = ?");
mysqli_stmt_bind_param($stmt, "s", $book_name);
$book_name = "Java基础教程";
if (mysqli_stmt_execute($stmt)) {
echo "删除记录成功\n";
} else {
echo "删除记录失败: " . mysqli_error($conn) . "\n";
}
// 查询记录
$sql = "SELECT * FROM book_message";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo "书名: " . $row["book_name"] . ", 作者: " . $row["author"] . ", 出版社: " . $row["publisher"] . ", 出版时间: " . $row["publish_time"] . ", 价格: " . $row["price"] . "\n";
}
} else {
echo "没有记录\n";
}
// 关闭连接
mysqli_close($conn);
?>
```
上述程序中,我们使用 mysqli_prepare() 函数和 mysqli_stmt_bind_param() 函数来创建预处理语句,并使用 mysqli_stmt_execute() 函数来执行预处理语句。这样,我们就可以动态地生成 SQL 语句,使程序更具可维护性和可扩展性。
阅读全文