能使用mysql_query()实现的功能,尽量不用php的函数,增加移植性。同时不需要记忆这么多得函数。
比如mysql_select_db("db_name"),可以用下面语句代替。
可以用mysql_query("use database db_name")
desc, show (tables/variables), select 等都会返回结果集,结果集都可以通过下面三个函数取得,多次执行会逐条读取,每次读取后自动移动到下一条,读到最后一条的后面则返回空。所以读取全部结果集经常是这么写:
while($data = mysql_fetch_row())
{
$data...
mysql_fetch_row(); //索引数组 下标按照字段顺序 0,1,2的数组
mysql_fetch_array(); //同时返回索引和关联组合,即数据是上述两个的和
mysql_num_rows($result)
从结果集中取得记录条数。
mysql_affected_rows()
取得上次命令执行时受影响的条数。
mysql_insert_id()
获取上次命令执行时,最新插入数据的记录的自动增长的字段值,字段名不一定是id。
mysql_free_result($result)
大的记录在使用后尽量主动释放,而不是靠脚本结束后自动释放。
*注意事项
mysql_query(sql语句, 连接资源$con) //第二个参数不指定则默认使用当前创建的连接。当多个数据库连接时会出错。
mysql_fetch_* 不需要连接$con
输出mysql错误
mysql_error()
mysql中utf8不能有-,因为-在校对规则中使用,若这里加了-则和校对规则冲突例如 utf8-general-ci。
<完>
比如mysql_select_db("db_name"),可以用下面语句代替。
可以用mysql_query("use database db_name")
desc, show (tables/variables), select 等都会返回结果集,结果集都可以通过下面三个函数取得,多次执行会逐条读取,每次读取后自动移动到下一条,读到最后一条的后面则返回空。所以读取全部结果集经常是这么写:
while($data = mysql_fetch_row())
{
$data...
}
mysql_fetch_assoc(); //association 关联数组,下标是字段名mysql_fetch_row(); //索引数组 下标按照字段顺序 0,1,2的数组
mysql_fetch_array(); //同时返回索引和关联组合,即数据是上述两个的和
mysql_num_rows($result)
从结果集中取得记录条数。
mysql_affected_rows()
取得上次命令执行时受影响的条数。
mysql_insert_id()
获取上次命令执行时,最新插入数据的记录的自动增长的字段值,字段名不一定是id。
mysql_free_result($result)
大的记录在使用后尽量主动释放,而不是靠脚本结束后自动释放。
*注意事项
mysql_query(sql语句, 连接资源$con) //第二个参数不指定则默认使用当前创建的连接。当多个数据库连接时会出错。
mysql_fetch_* 不需要连接$con
输出mysql错误
mysql_error()
mysql中utf8不能有-,因为-在校对规则中使用,若这里加了-则和校对规则冲突例如 utf8-general-ci。
<完>