标题: PHP与MYSQL交互函数表学习笔记
轻骑兵
中校
Rank: 1



UID 90
精华 2
积分 1642
帖子 781
威望 19
金币 811
热心 0
阅读权限 50
注册 2005-9-15
状态 离线
PHP与MYSQL交互函数表学习笔记

最近一直在研究PHP与MYSQL,感觉PHP与MYSQL交互的函数都是过程化的,当然也有mysqli扩展,面向对象,Java和C#写多了之后,再写PHP,有些不适应,感觉又回到了学C的年代。今天学习了一些函数,记录下来,以便日后忘记时,可以参考。
<COLGROUP>
<COL style="WIDTH: 124pt; mso-width-source: userset; mso-width-alt: 5280" width=165></COL>
<COL style="WIDTH: 154pt; mso-width-source: userset; mso-width-alt: 6560" width=205></COL>
<COL style="WIDTH: 544pt; mso-width-source: userset; mso-width-alt: 23200" width=725></COL>
<COL style="WIDTH: 244pt; mso-width-source: userset; mso-width-alt: 10400" width=325></COL></COLGROUP>
<TBODY>
<STRONG>说 明</STRONG></FONT></TD>
<STRONG>函</FONT> </FONT>数</FONT> </FONT>名</FONT></STRONG></FONT></FONT></TD>
<STRONG>函</FONT> </FONT>数</FONT> </FONT>详</FONT> </FONT>细</FONT></STRONG></FONT></FONT></TD>
<STRONG>函 数 说 明</STRONG></FONT></TD></TR>
<STRONG>建立数据库连接</STRONG></FONT></TD>
<STRONG>mysql_connect()</FONT></STRONG></TD>
resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])</FONT>
</FONT>示例:</FONT>$conn = @mysql_connect("localhost", "username", "password") or dir("</FONT>不能连接到</FONT>Mysql Server");</FONT></FONT></FONT></TD>
使用该连接必须显示的关闭连接</FONT></TD></TR>
<STRONG>建立数据库连接</STRONG></FONT></TD>
<STRONG>mysql_pconnect()</FONT></STRONG></TD>
resource mysql_pconnect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])</FONT>
</FONT>示例:</FONT>$conn = @mysql_pconnect("localhost", "username", "password") or dir("</FONT>不能连接到</FONT>Mysql Server");</FONT></FONT></FONT></TD>
使用该连接函数不需要显示的关闭连接,它相当于使用了连接池</FONT></TD></TR>
<STRONG>关闭数据库连接</STRONG></FONT></TD>
<STRONG>mysql_close()</FONT></STRONG></TD>
$conn = @mysql_connect("localhost", "username", "password") or die("</FONT>不能连接到</FONT></FONT></FONT>Mysql Server");
@mysql_select_db("MyDatabase") or die("</FONT></FONT>不能选择这个数据库,或数据库不存在</FONT>");
echo "</FONT></FONT>你已经连接到</FONT>MyDatabase</FONT>数据库</FONT></FONT></FONT>";
</FONT>mysql_close()</FONT>;</FONT></FONT></FONT></TD>
 </FONT></TD></TR>
<STRONG>选择数据库</STRONG></FONT></TD>
<STRONG>mysql_select_db()</FONT></STRONG></TD>
boolean mysql_select_db(string db_name [, resource link_id])</FONT>
$conn = @mysql_connect("localhost", "username", "password") or die("</FONT></FONT>不能连接到</FONT>Mysql Server");
@mysql_select_db("MyDatabase") or die("</FONT></FONT>不能选择这个数据库,或数据库不存在</FONT>");</FONT></FONT></FONT></TD>
 </FONT></TD></TR>
<STRONG>查询</FONT>MySQL</FONT></STRONG></FONT></FONT></TD>
<STRONG>mysql_query()</FONT></STRONG></TD>
resource mysql_query (string query, [resource link_id])</FONT>
$linkId = @mysql_connect("localhost", "username", "password") or die("</FONT></FONT>不能连接到</FONT>Mysql Server");
@mysql_select_db("MyDatabase") or die("</FONT></FONT>不能选择这个数据库,或者数据库不存在</FONT>");
$query = "select * from MyTable";
$result = mysql_query($query);
mysql_close();</FONT></FONT></TD>
若</FONT>SQL</FONT>查询执行成功,则返回资源标识符,失败时返回</FONT>FALSE</FONT>。若执行更新成功,则返回</FONT>TRUE</FONT>,否则返回</FONT>FALSE</FONT></FONT></FONT></TD></TR>
<STRONG>查询</FONT>MySQL</FONT></STRONG></FONT></FONT></TD>
<STRONG>mysql_db_query()</FONT></STRONG></TD>
resource mysql_db_query(string database, string query [, resource link_id])</FONT>
$linkId = @mysql_connect("localhost", "username", "password") or die("</FONT></FONT>不能连接到</FONT>MysqlServer");
$query = "select * from MyTable";
$result = mysql_db_query("MyDatabase", $query);
mysql_close();</FONT></FONT></TD>
为了使代码清晰,不推荐使用这个函数调用</FONT></TD></TR>
<STRONG>获取和显示数据</STRONG></FONT></TD>
<STRONG>mysql_result()</FONT></STRONG></TD>
mixed mysql_result (resource result_set, int row [, mixed field])</FONT>
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
$c_id = mysql_result($result, 0, "id");
$c_name = mysql_result($result, 0, "name");</FONT></FONT></TD>
最简单、也是效率最低的数据获取函数</FONT></TD></TR>
<STRONG>获取和显示数据</STRONG></FONT></TD>
<STRONG>mysql_fetch_row()</FONT></STRONG></TD>
array mysql_fetch_row (resource result_set)</FONT>
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while (list($id, $name) = mysql_fetch_row($result)) {
        </SPAN>echo("Name: $name ($id) <br />");
}</FONT></FONT></TD>
函数从</FONT>result_set</FONT>中获取整个数据行,将值放在一个索引数组中。通常会结使</FONT>list()</FONT>函数使用</FONT></FONT></FONT></TD></TR>
<STRONG>获取和显示数据</STRONG></FONT></TD>
<STRONG>mysql_fetch_array()</FONT></STRONG></TD>
array mysql_fetch_array (resource result_set [, int result_type])</FONT>
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        </SPAN>$id = $row["id"];
        </SPAN>$name = $row["name"];
        </SPAN>echo "Name: $name ($id) <br />";
}</FONT></FONT></TD>
result_type</FONT>的值有:
</FONT>MYSQL_ASSOC</FONT>: </FONT></FONT></FONT>字段名表示键,字段内容为值
</FONT>MYSQL_NUM</FONT>: </FONT></FONT>数值索引数组,操作与</FONT>mysql_fetch_ros()</FONT></FONT></FONT>函数一样
</FONT>MYSQL_BOTH</FONT>: </FONT></FONT>即作为关联数组又作为数值索引数组返回。</FONT>result_type</FONT>的默认值。</FONT></FONT></FONT></TD></TR>
<STRONG>获取和显示数据</STRONG></FONT></TD>
<STRONG>mysql_fetch_assoc()</FONT></STRONG></TD>
array mysql_fetch_assoc (resource result_set)</FONT>
</FONT>相当于调用</FONT> mysql_fetch_array(resource, MYSQL_ASSOC);</FONT></FONT></FONT></TD>
 </FONT></TD></TR>
<STRONG>获取和显示数据</STRONG></FONT></TD>
<STRONG>mysql_fetch_object()</FONT></STRONG></TD>
object mysql_fetch_object(resource result_set)</FONT>
$query = "select id, name from MyTable order by name";
while ($row = mysql_fetch_object($result)) {
        </SPAN>$id = $row->id;
        </SPAN>$name = $row->name;
        </SPAN>echo "Name: $name ($id) <br />";
}</FONT></FONT></TD>
在操作上与</FONT>mysql_fetch_array()</FONT>相同</FONT></FONT></FONT></TD></TR>
<STRONG>所选择的记录</STRONG></FONT></TD>
<STRONG>mysql_num_rows()</FONT></STRONG></TD>
int mysql_num_rows(resource result_set)</FONT>
#query = "select id, name from MyTable where id > 65";
$result = mysql_query($query);
echo "</FONT></FONT>有</FONT>".mysql_num_rows($result)."</FONT>条记录的</FONT>ID</FONT>大于</FONT>65";</FONT></FONT></FONT></TD>
只在确定</FONT>select</FONT>查询所获取的记录数时才有用。</FONT></FONT></FONT></TD></TR>
<STRONG>受影响的记录</STRONG></FONT></TD>
<STRONG>mysql_affected_rows()</FONT></STRONG></TD>
int mysql_affected_rows([resource link_id])</FONT>
$query = "update MyTable set name="CheneyFu" where id>=5";
$result = mysql_query($query);
echo "ID</FONT></FONT>大于等于</FONT>5</FONT>的名称被更新了的记录数:</FONT>".mysql_affected_rows();</FONT></FONT></FONT></TD>
该函数获取受</FONT>INSERT,UPDATE</FONT>或</FONT>DELETE</FONT>更新语句影响的行数</FONT></FONT></FONT></TD></TR>
<STRONG>获取数据库列表信息</STRONG></FONT></TD>
<STRONG>mysql_list_dbs()</FONT></STRONG></TD>
resource mysql_list_dbs([resource link_id])</FONT>
mysql_connect("localhost", "username", "password");
$dbs = mysql_list_dbs();
echo "Databases: <br />";
while (list($db) = mysql_fetch_rows($dbs)) {
        </SPAN>echo "$db <br />";
}</FONT></FONT></TD>
 </FONT></TD></TR>
<STRONG>获取数据库名</STRONG></FONT></TD>
<STRONG>mysql_db_name()</FONT></STRONG></TD>
string mysql_db_name(resource result_set, integer index)</FONT></TD>
该函数获取在</FONT>mysql_list_dbs()</FONT>所返回</FONT>result_set</FONT>中位于指定</FONT>index</FONT>索引的数据库名</FONT></FONT></FONT></TD></TR>
<STRONG>获取数据库表列表</STRONG></FONT></TD>
<STRONG>mysql_list_tables()</FONT></STRONG></TD>
resource mysql_list_tables(string database [, resource link_id])</FONT>
mysql_connect("localhost", "username", "password");
$tables = mysql_list_tables("MyDatabase");
while (list($table) = mysql_fetch_row($tables)) {
        </SPAN>echo "$table <br />";
}</FONT></FONT></TD>
该函数获取</FONT>database</FONT>中所有表的表名</FONT></FONT></FONT></TD></TR>
<STRONG>获取数据库表名</STRONG></FONT></TD>
<STRONG>mysql_tablename()</FONT></STRONG></TD>
string mysql_tablename(resource result_set, integer index)</FONT>
mysql_connect("localhost", "username", "password");
$tables = mysql_list_tables("MyDatabase");
$count = -1;
while (++$count < mysql_numrows($tables)) {
        </SPAN>echo mysql_tablename($tables, $count)."<br />";
}</FONT></FONT></TD>
该函数获取</FONT>mysql_list_tables()</FONT>所返回</FONT>result_set</FONT>中位于指定</FONT>index</FONT>索引的表名</FONT></FONT></FONT></TD></TR>
<STRONG>获取字段信息</STRONG></FONT></TD>
<STRONG>mysql_fetch_field()</FONT></STRONG></TD>
object mysql_fetch_field(resource result [, int field_offset])</FONT>
mysql_connect("localhost", "username", "password");
mysql_select_db("MyDatabase");
$query = "select * from MyTable";
$result = mysql_query($query);
$fields = mysql_num_fields($result);
for($count = 0; $count < $fieds; $count++) {
       </SPAN>$field = mysql_fetch_field($result, $count);
       </SPAN>echo "<p>$field->name  </SPAN>$field->type  </SPAN>($field->max_length) </p>";
}</FONT></FONT></TD>
返回的对象共有</FONT>12</FONT></FONT></FONT>个对象属性:
</FONT>name</FONT>: </FONT></FONT></FONT>字段名
</FONT>table</FONT>: </FONT></FONT></FONT>字段所在的表
</FONT>max_lengt</FONT>h: </FONT></FONT></FONT>字段的最大长度
</FONT>not_null</FONT>: </FONT></FONT>如果字段不能为</FONT>null</FONT>,则为</FONT>1</FONT>,否则</FONT></FONT></FONT>0
</FONT>primary_key</FONT>: </FONT></FONT>如果字段为主键,则为</FONT>1</FONT>,否则</FONT></FONT></FONT>0
</FONT>unique_key</FONT>: </FONT></FONT>如果字段是唯一键,则为</FONT>1</FONT>,</FONT> </FONT>否则</FONT></FONT></FONT>0
</FONT>multiple_key</FONT>: </FONT></FONT>如果字段为非唯一,则为</FONT>1</FONT>,否则</FONT></FONT></FONT>0
</FONT>numeric</FONT>: </FONT></FONT>如果字段为数值则为</FONT>1</FONT>,否则</FONT></FONT></FONT>0
</FONT>blob</FONT>: </FONT></FONT>如果字段为</FONT>BLOB</FONT>则为</FONT>1</FONT>,否则为</FONT></FONT></FONT>0
</FONT>type</FONT>: </FONT></FONT></FONT>字段的数据类型
</FONT>unsigned</FONT>: </FONT></FONT>如果字段为无符号数则为</FONT>1</FONT>,否则为</FONT></FONT></FONT>0
</FONT>zerofill</FONT>: </FONT></FONT>如果字段为“零填充”则为</FONT>1</FONT>,</FONT> </FONT>否则为</FONT>0</FONT></FONT></FONT></TD></TR>
<STRONG>获取查询的字段数</STRONG></FONT></TD>
<STRONG>mysql_num_fields()</FONT></STRONG></TD>
integer mysql_num_fields (resource result_set)</FONT>
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
echo "</FONT></FONT>这个查询的字段数是:</FONT>".mysql_num_fields($result)."<br />";</FONT></FONT></FONT></TD>
返回查询result_set中的字段数</FONT></TD></TR>
<STRONG>获取指定表的所有字段的字段名</STRONG></FONT></TD>
<STRONG>mysql_list_fields()</FONT></STRONG></TD>
resource mysql_list_fields (string database_name, string table_name [, resource link_id])</FONT>
$fields = mysql_list_fields("MyDatabase", "MyTable");
echo "</FONT></FONT>数据库</FONT>MyDatabase</FONT>中表</FONT>MyTable</FONT>的字段数:</FONT> ".mysql_num_fields($fields)."<br />";</FONT></FONT></FONT></TD>
 </FONT></TD></TR>
<STRONG>获取指定的字段选项</STRONG></FONT></TD>
<STRONG>mysql_field_flags()</FONT></STRONG></TD>
string mysql_field_flags (resource result_set, integer field_offset)</FONT></TD>
 </FONT></TD></TR>
<STRONG>获取指定的字段的最大长度</STRONG></FONT></TD>
<STRONG>mysql_field_len()</FONT></STRONG></TD>
integer mysql_field_len (resource result_set, integer field_offset)</FONT>
$query = "select name from MyTable";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_len($result, 0)."<br />";</FONT></FONT></TD>
如果</FONT>mysql_field_len($reseult, 0) = 16777215
</FONT>那么</FONT>numer_format(mysql_field_len($result))</FONT>等于</FONT>16,777,215</FONT></FONT></FONT></TD></TR>
<STRONG>获取字段名</STRONG></FONT></TD>
<STRONG>mysql_field_name()</FONT></STRONG></TD>
string mysql_field_name (resource result_set, int field_offset)</FONT>
$query = "select id as PKID, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_name($result, 0); // Result: PKID</FONT></FONT></TD>
 </FONT></TD></TR>
<STRONG>获取字段类型</STRONG></FONT></TD>
<STRONG>mysql_field_type()</FONT></STRONG></TD>
string mysql_field_type (resource result_set, int field_offset)</FONT>
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_type($result, 0); // Result: int</FONT></FONT></TD>
 </FONT></TD></TR>
<STRONG>获取字段所在表名</STRONG></FONT></TD>
<STRONG>mysql_field_table()</FONT></STRONG></TD>
string mysql_field_table (resource result_set, int field_offset)</FONT>
$query = "select id as PKID, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_table($result, 0);  </SPAN>// Result: MyTable</FONT></FONT></TD></TR></TBODY></TABLE>

顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-10-13 06:59
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP