按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
资源的建立:
同资源的释放类似,资源是通过专门的函数来建立和使用的。
PHP 讲义 第 62 页 共 90 页
…………………………………………………………Page 63……………………………………………………………
2。PHP 中用于操纵MySQL 数据库的函数
PHP 将对 MySQL 数据库的操作,如连接,断开,查询,修改,删除等,都封装成了函数,有些教材中也叫接
口。
这些函数属于PHP 手册中的“MySQL 函数库”,常用的有以下几个:
〃Y mysql_error
返回上一个 MySQL 操作产生的文本错误信息。
语法格式:
string mysql_error ( 'resource link_identifier' )
返回上一个 MySQL 函数的错误文本,如果没有出错则返回 '' (空字符串)。如果没有指定连接资源号,则使用
上一个成功打开的连接从 MySQL 服务器提取错误信息。
〃Y mysql_errno
返回上一个 MySQL 操作中的错误信息的数字代码。
语法格式:
int mysql_errno ( 'resource link_identifier' )
返回上一个 MySQL 函数的错误代码,如果没有出错则返回 0 (零)。
注意以上两个函数仅返回最近一次 MySQL 函数的执行(不包括 mysql_error() 和 mysql_errno() )的错误文本
或代码,因此如果要使用它们,确保在调用另一个 MySQL 函数之前检查它们的值。
〃Y mysql_connect
打开一个到 MySQL 服务器的连接
语法格式:
mysql_connect(servername;username;password)
如果成功则返回一个 MySQL 连接标识,一般为资源型数据,失败则返回 FALSE 。
函数中参数的解释:
servername:指明MySQL 数据库所在的服务器主机名称,可用IP 表示
username:访问该服务器主机的帐号名称
password:访问该服务器的密码
注意:
①不提供参数时使用以下默认值:
servername=”” (相当于servername= 'localhost' )
username =””
password =””
servername 参数可以包括端口号,如 〃servername:port〃 。
②可以在函数名前加上 @ 来抑制失败时产生的错误信息。
③一旦脚本结束,到服务器的连接就会被关闭,这点与PHP 每到页末就释放简单变量和客户端变量相同。若要
显式(强制)地释放该资源,可用 mysql_close() 函数。应养成用完连接,及时释放连接的好习惯。
〃Y mysql_close
语法格式:
bool mysql_close ( 'resource link_identifier' )
如果成功则返回 TRUE ,失败则返回 FALSE 。
mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的连接。如果没有指定 link_identifier ,则关闭
上一个打开的连接。
通常不需要使用 mysql_close() ,因为由mysql_connect 打开的连接会在脚本执行完毕后自动关闭。但若在脚本
中间用完后,提倡使用此函数及时连接资源,以提高效率。
例子 建立和关闭MySQL 连接例子
〃Y mysql_select_db(〃test〃;server_link)
选择一个MySQL 数据库,使其成为当前数据库。一个数据库成为当前数据库,那么当前所有的操作都是针对它
的。
语法格式:
bool mysql_select_db ( string database_name '; resource link_identifier' )
如果成功则返回 TRUE ,失败则返回 FALSE 。
mysql_select_db() 设定与指定的连接标识符所关联的服务器上的当前数据库。如果没有指定连接标识符,则使
用上一个打开的连接。如果没有打开的连接,本函数将无参数调用 mysql_connect() 来尝试打开一个并使用之。
例子 mysql_select_db() 例子
〃Y mysql_query
发送一个 MySQL 查询到当前数据库,由当前数据库执行之。
语法格式:
resource mysql_query ( string query '; resource link_identifier' )
mysql_query() 向与指定的连接标识符关联的服务器中的当前数据库发送一条查询,由当前数据库执行之。
如果没有指定 link_identifier ,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用
mysql_connect() 函数来建立一个连接并使用之。
注: 查询字符串不应以分号结束。
查询结果会被缓存。
查询结果:
mysql_query() 仅对 SELECT ,SHOW ,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行
不正确则返回 FALSE 。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE ,出错时返回
FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。
以下查询语法上有错,因此 mysql_query() 失败并返回 FALSE :
以下查询当 my_col 并不是表 my_tbl 中的列时语义上有错,因此 mysql_query() 失败并返回 FALSE :
如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 FALSE 。
查询结果的查看:
查看SELECT 语句的查询结果的行数,调用 mysql_num_rows() ;
查看DELETE,INSERT,REPLACE 或 UPDATE 语句影响的行数,调用 mysql_affected_rows() 。
仅对 SELECT ,SHOW ,DESCRIBE 或 EXPLAIN 语句 mysql_query() 才会返回一个新的结果标识符,可以
将其传递给 mysql_fetch_array() 和其它处理结果表的函数。
处理完结果集后可以通过调用 mysql_free_result() 来释放与之关联的资源,尽管脚本执行完毕后会自动释放内
存。
〃Y mysql_num_rows
取得结果集中行的数目
语法格式:
int mysql_num_rows ( resource result )
mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或
者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows() 。
例子 mysql_num_rows() 例子
〃Y mysql_affected_rows
取得前一次 MySQL 操作所影响的记录行数
语法格式:
int mysql_affected_rows ( 'resource link_identifier' )
取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
例子 mysql_affected_rows() 例子
上例的输出类似于:
Records deleted: 10
Records deleted: 0
例子 使用事务处理的 mysql_affected_rows() 例子
上例的输出类似于:
Updated Records: 10
事务处理:如果使用事务处理(transactions ),需要在 INSERT ,UPDATE 或 DELETE 查询后调用
mysql_affected_rows() 函数,而不是在 MIT 命令之后。
〃Y mysql_fetch_array
从结果集中取得一行作为关联数组,或数字数组,或二者兼有。
语法格式:
array mysql_fetch_array ( resource result '; int result_type' )
返回根据从结果集取得的行生成的数组,如果没有更多�