一、使用数据库
1、连接数据库:
$con = mysql_connect($hostname, $user, $pass);
//连接成功返回一个连接标识符(一个标志,关闭等操作时有用),否者返回false。
参数说明:
server:
MySQL 服务器。可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。
如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'。 在 SQL 安全模式 时,参数被忽略,总是使用 'localhost:3306'。
username:
用户名。默认值由 mysql.default_user 定义。 在 SQL 安全模式 时,参数被忽略,总是使用服务器进程所有者的用户名。
password:
密码。默认值由mysql.default_password定义。在 SQL 安全模式 时,参数被忽略,总是使用空密码。
注:其他参数详见php用户手册
2、选择数据库:
mysql_select_db($database_name);
//返回值为布尔类型
参数说明:
database_name:
要选择的数据库名
3、 设置数据库字符集:
mysql_query('set names utf8');
4、 断开数据库链接:
mysql_close($con);
参数说明:
$con:
连接标志符
5、返回上一个错误信息:
mysql_error();
//返回上一个sql操作出错的原因
二、执行sql语句
$query = mysql_query($sql);
//返回值是一个布尔值类型(sql语句为增删改,insert, delete, update )
参数说明:
$sql:
要执行的sql语句,如:sql语句为增删改,insert, delete, update
1)当执行insert语句后,可以通过php的mysql_insert_id()来获取自增的id,此id可以用来判断是否成功插入,或作为关联id用作其它数据库操作。
**
2)sql语句为查询时,select
查询成功时,返回结果集的资源标识符(地址),否则返回false
**##三、处理结果集
- mysql_fetch_row($query);
mysql_fetch_row每执行一次,都从资源也就是结果集里依次取一条数据,以数组的形式返回出来,当前一次已经取到最后一条数据的时候,这一次返回空结果。(php认定null为假)
返回的数组是一个一维索引数组,每一个下标与数据库里字段的排序相对应。
2)mysql_fetch_assoc($query);
mysql_fetch_assoc每执行一次,都从资源也就是结果集里依次取一条数据,以数组的形式返回出来,当前一次已经取到最后一条数据的时候,这一次返回空结果。
返回的数组是一个一维关联数组,每一个键值与数据库里字段相对应。
3)mysql_fetch_array($query,[param2]);
可选参数param2:
MYSQL_ROW //相当于mysql_fetch_row($query);
MYSQL_ASSOC//相当于mysql_fetch_assoc($query);
MYSQL_BOTH //(默认)
mysql_fetch_array($query)每执行一次,都从资源也就是结果集里依次取一条数据,以数组的形式返回出来,当前一次已经取到最后一条数据的时候,这一次返回空结果。
4)mysql_fetch_object($query);
每执行一次,都从资源也就是结果集里依次取一条数据,以对象形式返回,对象中的属性为字段名称,值对应相应字段值
$object = mysql_fetch_object($query);
echo $object->name;
四、其他常用:
1)mysql_num_rows($query);
获取结果集中记录的条数。
可用来判断结果集是否为空。
if(mysql_num_rows($query){
}
2)mysql_affected_rows();
//记录上一次执行语句(insert, delete, update)后,受影响的行数
$con=mysql_connect($host, $user, $pass);
mysql_affected_rows($con);
3)mysql_result();
//获取指定行指定字段的值
mysql_result($query,1,1);//获取第2行第2个字段
mysql_result($query,1,'name') //获取第2行name字段
注意:本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。(建议使用新的扩张)