PHP连接MySQL数据库:从基础到进阶
需积分: 0 195 浏览量
更新于2024-08-30
收藏 49KB DOC 举报
"本文介绍了PHP连接MySQL数据库的六种方法,从简单到复杂,涵盖了面向过程和面向对象的方式,旨在帮助读者快速掌握与MySQL交互的技巧。"
PHP是一种广泛用于Web开发的服务器端脚本语言,而MySQL是常用的开源关系型数据库管理系统。两者结合可以构建动态、数据驱动的网站。下面将详细解释这两种连接MySQL数据库的方法:
1. 最简单的方式 - mysql(面向过程)
在PHP中,`mysql`扩展是早期用于连接MySQL数据库的接口。以下是一个简单的示例:
```php
<?php
$con = mysql_connect("localhost", "root", "password"); // 连接数据库服务器
$select_db = mysql_select_db('test', $con); // 选择数据库
if (!$select_db) {
die("无法连接数据库:\n" . mysql_error()); // 错误处理
}
$sql = "SELECT * FROM db_table"; // SQL查询语句
$res = mysql_query($sql, $con);
if (!$res) {
die("无法获取结果:\n" . mysql_error()); // 查询失败处理
}
while ($row = mysql_fetch_assoc($res)) {
print_r($row); // 输出查询结果
}
// 关闭数据库连接
mysql_close($con);
?>
```
请注意,`mysql`扩展自PHP 5.5.0版本后被弃用,从PHP 7.0.0版本起不再支持,因此在新项目中不建议使用。
2. 新的方式 - mysqli(面向过程)
`mysqli`扩展是MySQL Improved的缩写,它提供了更安全、更强大的功能,包括预处理语句和面向对象的接口。以下是面向过程的示例:
```php
<?php
$mysql_server_name = 'localhost'; // 数据库服务器
$mysql_username = 'root'; // 数据库用户名
$mysql_password = 'password'; // 数据库密码
$mysql_database = 'test'; // 数据库名
$conn = mysqli_connect($mysql_server_name, $mysql_username, $mysql_password, $mysql_database); // 连接数据库
// 连接错误处理
if (mysqli_connect_errno($conn)) {
die("连接MySQL失败: " . mysqli_connect_error());
}
mysqli_query($conn, "SET NAMES utf8"); // 设置数据库编码格式
// 或者使用:mysqli_set_charset($conn, "utf8"); // 设置默认客户端字符集
// 查询代码
$sql = "SELECT * FROM db_table";
$query = mysqli_query($conn, $sql);
```
3. mysqli(面向对象)
除了面向过程的接口,mysqli还提供了面向对象的风格,使得代码更加整洁:
```php
<?php
$servername = 'localhost';
$username = 'root';
$password = 'password';
$dbname = 'test';
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 设置字符集
$conn->set_charset("utf8");
// 查询代码
$sql = "SELECT * FROM db_table";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 results";
}
// 关闭连接
$conn->close();
?>
```
4. PDO(PHP Data Objects)
PDO是另一种连接多种数据库的方法,它提供了统一的接口。对于MySQL,可以使用`PDO_MYSQL`驱动:
```php
<?php
$host = 'localhost';
$db = 'test';
$user = 'root';
$pass = 'password';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
// 查询代码
$sql = "SELECT * FROM db_table";
$stmt = $pdo->query($sql);
foreach ($stmt as $row) {
print_r($row);
}
?>
```
5. 使用PDO预处理语句
预处理语句可以防止SQL注入,提高安全性:
```php
<?php
$stmt = $pdo->prepare("SELECT * FROM db_table WHERE id = :id");
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$id = 1;
$stmt->execute();
foreach ($stmt as $row) {
print_r($row);
}
?>
```
6. 使用mysqli预处理语句
同样,mysqli也支持预处理语句,提高了安全性:
```php
<?php
$stmt = $conn->prepare("SELECT * FROM db_table WHERE id = ?");
$stmt->bind_param("i", $id);
$id = 1;
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
print_r($row);
}
$stmt->close();
?>
```
以上就是PHP连接MySQL数据库的六种常见方法。在实际开发中,推荐使用mysqli或PDO,因为它们更安全且支持预处理语句,同时提供了面向对象的编程风格。在处理用户输入时,尤其要确保使用预处理语句来防止SQL注入攻击。
2022-04-28 上传
2021-01-20 上传
2020-10-16 上传
2021-10-10 上传
2022-11-01 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_44145362
- 粉丝: 1
- 资源: 2
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全