使用PHP从Web访问MySQL数据库
立即解锁
发布时间: 2025-08-21 02:18:51 订阅数: 1 


PHP与MySQL:从入门到精通
### 使用 PHP 从 Web 访问 MySQL 数据库
在 Web 开发中,将数据库与 Web 前端连接起来是一项常见且重要的任务。本文将详细介绍如何使用 PHP 从 Web 访问 MySQL 数据库,包括数据库查询、数据插入、使用预处理语句以及使用通用数据库接口等内容。
#### 1. Web 数据库架构的工作原理
Web 数据库架构的工作流程通常包含以下步骤:
1. 用户的 Web 浏览器发出对特定网页的 HTTP 请求。例如,用户可能使用 HTML 表单请求搜索 Book - O - Rama 中由 Michael Morgan 撰写的所有书籍,搜索结果页面为 results.php。
2. Web 服务器接收对 results.php 的请求,检索该文件,并将其传递给 PHP 引擎进行处理。
3. PHP 引擎开始解析脚本。脚本中包含连接到数据库并执行查询(搜索书籍)的命令。PHP 打开与 MySQL 服务器的连接,并发送相应的查询。
4. MySQL 服务器接收数据库查询,处理它,并将结果(书籍列表)发送回 PHP 引擎。
5. PHP 引擎完成脚本的运行。这通常包括将查询结果以 HTML 格式进行良好的格式化,然后将生成的 HTML 返回给 Web 服务器。
6. Web 服务器将 HTML 传递回浏览器,用户可以在浏览器中看到她请求的书籍列表。
以下是一个简单的 HTML 搜索表单示例(search.html):
```html
<html>
<head>
<title>Book - O - Rama Catalog Search</title>
</head>
<body>
<h1>Book - O - Rama Catalog Search</h1>
<form action="results.php" method="post">
Choose Search Type:<br />
<select name="searchtype">
<option value="author">Author</option>
<option value="title">Title</option>
<option value="isbn">ISBN</option>
</select>
<br />
Enter Search Term:<br />
<input name="searchterm" type="text" size="40"/>
<br />
<input type="submit" name="submit" value="Search"/>
</form>
</body>
</html>
```
当用户点击“Search”按钮时,将调用 results.php 脚本,以下是该脚本的代码:
```php
<html>
<head>
<title>Book - O - Rama Search Results</title>
</head>
<body>
<h1>Book - O - Rama Search Results</h1>
<?php
// create short variable names
$searchtype=$_POST['searchtype'];
$searchterm=trim($_POST['searchterm']);
if (!$searchtype || !$searchterm) {
echo 'You have not entered search details. Please go back and try again.';
exit;
}
if (!get_magic_quotes_gpc()){
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}
@ $db = new mysqli('localhost', 'bookorama', 'bookorama123', 'books');
if (mysqli_connect_errno()) {
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
$query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
$result = $db->query($query);
$num_results = $result->num_rows;
echo "<p>Number of books found: ".$num_results."</p>";
for ($i=0; $i <$num_results; $i++) {
$row = $result->fetch_assoc();
echo "<p><strong>".($i+1).". Title: ";
echo htmlspecialchars(stripslashes($row['title']));
echo "</strong><br />Author: ";
echo stripslashes($row['author']);
echo "<br />ISBN: ";
echo stripslashes($row['isbn']);
echo "<br />Price: ";
echo stripslashes($row['price']);
echo "</p>";
}
$result->free();
$db->close();
?>
</body>
</html>
```
#### 2. 从 Web 查询数据库的基本步骤
从 Web 访问数据库的脚本通常遵循以下基本步骤:
1. **检查和过滤用户输入的数据**
- 去除用户输入搜索词首尾的空白字符:
```php
$searchterm=trim($_POST['searchterm']);
```
- 验证用户是否输入了搜索词并选择了搜索类型:
```php
if (!$searchtype || !$searchterm) {
echo "You have not entered search details. Please go back and try again.";
exit;
}
```
- 检查自动引号功能是否开启,如果未开启,则使用 addslashes() 函数对数据进行转义:
```php
if (!get_magic_quotes_gpc()) {
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}
```
- 对从数据库返回的数据使用 stripslashes() 函数去除转义字符,并使用 htmlspecialchars() 函数对 HTML 特殊字符进行编码。
2. **建立与数据库的连接**
- PHP 中用于连接 MySQL 的库是 mysqli。可以使用面向对象或过程化的语法进行连接。
- 面向对象的连接方式:
```php
@ $db = ne
```
0
0
复制全文
相关推荐









