一、PHP连接数据库及基本操作
MySQL采用的是’客户机/服务器’架构。使用PHP安装的MySQL扩展函数,和直接使用客户端软件区访问MySQL数据库服务器,原理一样,都需要向MySQL管理系统发送SQL命令,然后将结果返回给用户。
在PHP中,SQL分为两类(查看SQL语句分类):一是有返回结果集的DQL语句,如select/desc 表名,执行完毕之后,需要PHP处理结果集;二是没有结果集的,如DML、DDL等,但是DML语句执行成功后对数据表的记录有影响。
<?php//连接数据库,常用参数是主机名、用户名和密码$link = mysql_connect('localhost','r
【PHP链接MySQL的常用扩展函数】
在PHP中与MySQL数据库进行交互主要依赖于一系列的扩展函数,这些函数使得开发者能够方便地连接、查询、处理数据以及管理MySQL数据库。以下是关于PHP连接MySQL数据库及其常用扩展函数的详细介绍:
### 1. 连接MySQL数据库
连接MySQL数据库通常使用`mysql_connect()`函数,它需要三个参数:主机名(如'localhost')、用户名(如'root')和密码。例如:
```php
$link = mysql_connect('localhost', 'root', '123456');
```
连接成功会返回一个资源标识符,失败则返回`false`。可以通过`mysql_error()`检查连接失败的原因。
### 2. 选择数据库
使用`mysql_select_db()`函数选择要操作的数据库,例如:
```php
mysql_select_db('test') or die('选择数据库失败'.mysql_error());
```
如果选择失败,`mysql_error()`会显示错误信息,但不建议在生产环境中使用,因为它可能会泄露敏感信息。
### 3. 设置字符集和执行SQL语句
`mysql_query()`函数可以执行SQL命令,同时设置字符集。例如:
```php
mysql_query('set names utf-8');
$sql = 'insert into test(id,name) values("1","dwqs")';
$result = mysql_query($sql);
```
`mysql_query()`返回的结果根据SQL语句类型不同而不同,DQL(Data Query Language,如`SELECT`)语句会返回结果集,而DML(Data Manipulation Language,如`INSERT`、`UPDATE`、`DELETE`)和DDL(Data Definition Language,如`CREATE TABLE`)语句通常没有结果集,但会改变数据表状态。
### 4. 处理DML语句结果
对于DML语句,可以使用`mysql_affected_rows()`检查受影响的行数,`mysql_insert_id()`获取自增字段的最新值。例如:
```php
if ($result && mysql_affected_rows() > 0) {
echo '插入数据成功'.mysql_insert_id().'<br/>';
} else {
echo '插入数据失败,错误号:'.mysql_errno().'错误信息:'.mysql_error().'<br/>';
}
```
### 5. 处理select查询结果集
对于`SELECT`语句返回的结果集,可以使用以下函数进行处理:
- `mysql_num_rows()`获取结果集中记录的总数。
- `mysql_num_fields()`获取结果集中的字段数量。
- `mysql_fetch_row()`获取一行记录,以索引数组形式返回。
- `mysql_fetch_assoc()`获取一行记录,以关联数组形式返回。
- `mysql_fetch_array()`可返回关联数组、索引数组或两者兼有,通过第二个参数指定返回类型。
- `mysql_fetch_object()`获取一行记录,以对象形式返回,便于通过对象属性访问字段。
处理结果集时,还可以使用`mysql_data_seek()`移动结果集指针,`mysql_fetch_lengths()`获取每列的长度,`mysql_result()`获取结果集中特定单元格的内容。
### 注意事项
- `mysql_*`系列函数已经废弃,推荐使用mysqli或PDO扩展进行数据库操作,它们提供了更好的安全性和性能。
- 在处理结果集时,应避免使用`mysql_fetch_array()`,除非有特定需求,因为它的灵活性可能导致性能下降。通常`mysql_fetch_row()`和`mysql_fetch_assoc()`就足够了。
- 在生产环境中,务必避免直接使用`mysql_error()`显示错误信息,应使用更安全的方式处理错误,比如记录日志。
了解这些PHP连接MySQL的基本函数和处理方法,可以有效地进行数据库操作,但在实际开发中,应遵循最佳实践,使用现代的数据库接口以确保代码的安全性和可维护性。