[PHP] php操作mysql总结
(1)连接数据库服务器
$connection=mysql_connect('localhost','root','');
<u></u>mysql_connect
用来打开非持久的mysql连接。
它接受3个参数:服务器地址,用户名,密码
如果成功则返回一个mysql连接标识,失败则返回false
注意:
脚本一结束,到服务器的连接就被关闭。
除非之前已经明确调用mysql_close($connection)
关闭了。
要创建一个持久连接,使用mysql_pconnect
函数。
(2)选择数据库
mysql_select_db('db_name',$connection);
<u></u>mysql_select_db
用来设置活动的mysql数据库。
它接受2个参数:数据库名,连接标识(可选,如果未指定,则使用上一个连接)
如果成功则返回true,失败则返回false。
(3)连接数据库的时候指定编码
使php写入mysql的编码为utf-8。
php5.2.3以及mysql5.0.7之后建议使用:
mysql_set_charset('utf8',$connection);
不建议使用:
mysql_query('SET NAME utf8',$connection);
(4)执行sql语句
$sql=" SELECT * FROM` gosun_activity `";
$result=mysql_query($sql);
<u></u>mysql_query
用来执行一条mysql查询。
它接受2个参数:查询字符串,连接标识(可选,如果未规定,则使用上一个打开的连接)
<u></u>mysql_query
仅对SELECT
,SHOW
,EXPLAIN
或DESCRIBE
语句返回一个资源标识符(结果集),如果查询执行不正确则返回false。对于其他类型的sql语句,mysql_query
在执行成功时返回true,出错时返回false。
注意:
查询字符串不应以分号结束。
如果没有打开的连接,本函数会尝试无参数调用mysql_connect
函数来建立一个连接并使用。
非false的返回值,意味着查询是合法的,并能够被服务器执行,这并不说明任何有关影响到的或返回的行数,很有可能一条查询执行成功了但并未影响到或并未返回任何行。
该函数会自动对记录集进行读取和缓存,如需进行非缓存查询,使用mysql_unbuffered_query
(5)获得返回行数
$supportNumber=mysql_num_rows($result);
<u></u>mysql_num_rows
用来返回结果集中行的数目。
它接受1个参数:结果集。
注意:
此命令仅对SELECT语句有效。
要取得被INSERT
,UPDATE
,或者DELETE
查询所影响到的行的数目,使用mysql_affected_rows
。
如果使用mysql_unbuffered_query
,则直到结果集中的所有行都被提取后mysql_num_rows
才能返回正确的值。
(6)获得结果集的下一行
$row=mysql_fetch_array($result);
<u></u>mysql_fetch_array
用来从结果集中取得一行作为数组。
(关联数组,数字数组,或二者兼有)
如果没有更多的行,则返回false。
它接受2个参数:数据指针,结果类型
数据指针,是mysql_query
的返回值。
结果类型,MYSQL_ASSOC
关联数组,MYSQL_NUM
数字数组,MYSQL_BOTH
默认(同时产生关联和数字数组)
注意:
<u></u>mysql_fetch_array
是mysql_fetch_row
的扩展版本,除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。
用mysql_fetch_array
并不明显比用mysql_fetch_row
慢,而且还明显提供了更多的值。
字段名是区分大小写的。