⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysql-实用技巧-33.htm

📁 微软数据库开发梦工场多媒体教学-My sql篇.rar
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#000000" text="#FFFFFF">
为了连接服务器,调用mysql_init()以初始化一个连接处理器,然后用该处理器调用mysql_real_connect()(还有其他信息例如主机名、用户名和口令)。当你用该连接完成工作后,调用mysql_close()终止它。
<p>当一个连接活跃时,客户可以用mysql_query()或mysql_real_query()将SQL查询发送到服务器。两者的差别是mysql_query()期望查询作为一个空结尾的字符串来指定而mysql_real_query()期望一个计数的字符串。如果字符串包含二进制数据(它可以包括空字节),你必须使用mysql_real_query()。</p>
<p>对与每个非--SELECT查询(例如,INSERT、UPDATE、DELETE等),你可以调用mysql_affected_rows()知道有多少行受到影响(改变)。</p>
<p>对于SELECT查询,你作为一个结果集合来检索选择的行。(注意一些语句是类SELECT的,他们返回行。这些包括SHOW、DESCRIBE和EXPLAIN。他们应该象SELECT语句相同的方式来对待。)</p>
<p>对客户,有两种方法处理结果集合。一种方法是通过调用mysql_store_result()立刻检索全部结果。该函数从服务器获得查询返回的所有行,并将他们存储在客户端。第二种方法是对客户通过调用mysql_use_result()初始化一个一行一行地结果集合的检索。该函数初始化检索,但是实际上不从服务器获得任何行。</p>
<p>在两种情况中,你通过mysql_fetch_row()存取行。用mysql_store_result()、mysql_fetch_row()储存取已经从服务器被取出的行。用mysql_use_result()、mysql_fetch_row()实际上从服务器检索行。调用mysql_fetch_lengths()可获得关于每行中数据值尺寸的信息。</p>
<p>在你用完一个结果集合以后,调用mysql_free_result()释放由它使用的内存。</p>
<p>两种检索机制是互补的。客户程序应该选择最适合他们的要求的途径。在实践中,客户通常更愿意使用mysql_store_result()。</p>
<p>mysql_store_result()的一个优点是既然行均被客户取到,你不仅能顺序存取行,你也能mysql_data_seek()或mysql_row_seek()在结果集合中前后移动以改变在结果集合中的当前行位置。你也能通过调用mysql_num_rows()知道有多少行。另一方面,mysql_store_result()的内存需求对较大结果集合可能很高,并且你最可能遇到out-of-memory情况。</p>
<p>mysql_use_result()的一个优点是客户为结果集合需要较少的内存,因为它一次只是维持一行(并且因为有较少的分配开销,mysql_use_result()能更快些)。缺点是你必须尽快处理每一行以避免困住服务器,你不必再结果集合中随意存取行(你只能顺序存取行),而且你不知道在结果集合中有多少行,直到你检索全部结果。还有,你必须检索出所有行,即使你在检索中途确定你已找到了想寻找的信息。 
</p>
<p>API使得客户正确应答查询成为可能(仅检索必要的行),不用知道查询是否是一个SELECT。你可以通过在mysql_query()(或mysql_real_query())之后调用mysql_store_result()做到。如果结果集合调用成功并且查询是一个SELECT,你能读取行。如果结果集合调用,调用mysql_field_count()确定结果是否是实际期望的。如果mysql_field_count()返回0,查询没有返回数据(表明它是一个INSERT、UPDATE、DELETE等),所以不期望返回行。如果mysql_field_count()是非零,查询应该有返回行,但是没有。这表明查询是一个失败的SELECT。见mysql_field_count()如何能做到的例子的描述。</p>
<p>mysql_store_result()和mysql_use_result()都允许你获得有关组成结果集合的字段的信息(字段数量、他们的名字和类型等等)。你可以通过重复调用mysql_fetch_field()在行中顺序存取字段信息,或调用mysql_fetch_field_direct()存取行中的字段编号。当前字段光标位置可以通过调用mysql_field_seek()改变,设置字段光标影响到后续mysql_fetch_field()调用。你也能通过调用mysql_fetch_fields()马上获得字段信息。</p>
<p>对于检测和报告错误,MySQL借助于mysql_errno()和mysql_error()函数提供错误信息的存取。他们返回最近调用的可能成功或失败的函数的错误代码或错误消息,允许你确定何时发生一个错误和什么错误。 
</p>
<p> <br>
</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -