MySQL數據庫函數詳解

發表于:2007-07-14來源:作者:點擊數: 標簽:
mysql_affected_rows([int link_id]); 在給定的連接中,返回由最近的DELETE、INSERT、REPLACE或者UPDATE語句所作用的行數。如果沒有行 被修改,則mysql_affected_rows()返回0,如果出現錯誤,則返回-1。 在SELECT查詢之后,mysql_affected_rows()返回所選擇


mysql_affected_rows([int link_id]);
在給定的連接中,返回由最近的DELETE、INSERT、REPLACE或者UPDATE語句所作用的行數。如果沒有行

被修改,則mysql_affected_rows()返回0,如果出現錯誤,則返回-1。
在SELECT查詢之后,mysql_affected_rows()返回所選擇的行數。但一般是與SELECT語句一道使用

mysql_num_rows().

使用范例:
<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("samp_db") or die("Could not select database");
$query="INSERT INTO

member(last_name,first_name,expiration)"."VALUES('Brown','Marcia','2002-6-3')";
$result=mysql_query($query) or die("Query failed");
printf("%d row%s insertedn",mysql_affected_rows(),mysql_affected_rows()==1?" ":"s");
?>

(2) int mysql_close(int[link_id]);
關閉由link_id標識的與MySQL服務器的連接。如果沒有指定連接,則mysql_close()關閉最近打開的連

接。如果成功,則mysql_close()返回真,失敗則返回假。對由mysql_pconnect()打開的永久連接,

mysql_close()忽略相應的關閉請求,只是返回值。如果要關閉一個連接,就應該用mysql_connect()而不是

mysql_pconnect()來打開它。

使用范例:

<?php
上一篇      目錄      下一篇=mysql_connect("localhost","sunsoft","suixiang") or die("Could not connect");
print("Connected suclearcase/" target="_blank" >ccessfully");
mysql_close(上一篇      目錄      下一篇);
?>

(3) int mysql_connect(string [hostname] [:port], string [username], string [password]);
本函式建立與 MySQL 伺服器的連線。其中所有的參數都可省略。當使用本函式卻不加任何參數時,參

數 hostname 的內定值為 localhost、參數 username 的內定值為 PHP 執行行程的擁有者、參數 password 則

為空字串 (即沒有密碼)。而參數 hostname 后面可以加冒號與埠號,代表使用那個埠與 MySQL 連接。當然在

使用資料庫時,早點使用 mysql_close() 將連線關掉可以節省資源。

使用范例

這是一位未具名網友提供的范例 (18-Feb-1999)
<?php
$dbh = mysql_connect('localhost:3306','mcclain','standard');
mysql_select_db('admreqs');
$query = "insert into requests(date, request, email, priority,status) values

(NOW(),'$description', '$email', '$priority', 'NEW')";
$res = mysql_query($query, $dbh);
$query = "select max(id) from requests";
$res = mysql_query($query, $dbh);
$err = mysql_error();
if($err){
echo "發生錯誤,請通知<a href=mailto:webmaster@my.site>站長</a>";
}
$row = mysql_fetch_row($res);
echo "未來您使用的號碼為: ".$row[0];
?>

(4) int mysql_create_db(string db_name [, int link_id]);
告訴由link_id標識的MySQL服務器用給定的名稱來創建數據庫。如果數據庫創建成功,則返回真;如

果出現錯誤,則返回假。必須在數據庫有創建它的CREATE權限。
可能利用mysql_query()較利用mysql_create_db()發布CREATE DATABASE 語句更為適合。
<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang"); or die("Could not connect");
if(mysql_create_db("my_db"))
print("Database created successfullyn");
else
print("Error creating database:%sn",mysql_error());
?>

由SELECT查詢返回的每個結果集都有一個行游標,指示下一個提取行的函數(mysql_fetch_array()、mysql_fetch_object()或者mysql_fetch_row())調用將返回哪一行。mysql_data_seek()將給定結果集的指針設置到給定的行。行號的范圍為0到mysql_num_rows()-1。如果行號合法,則mysql_data_seek()返回真,否則返回假。
<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("samp_db") or die("Could not select database");
$query="SELECT last_name,first_name FROM president");
$result=mysql_query($query) or die("Query failed");
for($i=mysql_num_rows($result)-1;$i>=0;$i-)
{
if(!mysql_data_seek($result,$i);
{
printf("Cannot seek to row %dn",$i);
continue;
}
if(!$row=mysql_fetch_object($result)))
continue;
printf("%d %s<BR>n",$row->last_name,$row->first_name);
}
mysql_free_result($result);
?>

(6) int mysql_db_query(string db_name, string query [, int link_id]);
mysql_db_query()除了提取一個額外的數據庫名稱參數,并在執行查詢之前使它成為缺省的數據庫為,與mysql_query()類似。

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
print("Connected successfully");
$query="SELECT * FROM president";
$result=mysql_db_query("samp_db",$query) or die("Query failed");
?>

(7) int mysql_drop_db(string db_name, int [link_id]);
告訴由link_id標識的MySQL服務器用給定的名稱來刪除數據庫。如果數據庫刪除成功,則返回真;如果出現錯誤,則返回假。必須有對數據庫進行刪除的DROP權限。
要小心這個函數;如果刪除數據庫,它就不存在了,且不能恢復。
使用mysql_query()較使用mysql_drop_db()發布DROP DATABASE 語句更為適合。
<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
if(mysql_drop_db("my_db"))
print("Database dropped successfullyn");
else
printf("Error dropping database:%sn",mysql_error());
?>

(8) int mysql_errno(int [link_id]);

對于給定的連接,返回含有最近返回狀態的與MySQL相關的函數的錯誤號。零值意味著未出現錯誤。

使用范例

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
print("Connected successfully");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed,error code=".mysql_errno());
?>

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
print("Connected successfully");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("query failed,error message=".mysql_error());
?>

(10)array mysql_fetch_array(int result, int [result_typ]);
本函式用來將查詢結果 result 拆到陣列變數中。若 result 沒有資料,則傳回 false 值。而本函式可以說是 mysql_fetch_row() 的加強函式,除可以將傳回列及數字索引放入陣列之外,還可以將文字索引放入陣列中。若是好幾個傳回欄位都是相同的文字名稱,則最后一個置入的欄位有效,解決方法是使用數字索引或者為這些同名的欄位 (column) 取別名 (alias)。值得注意的是使用本函式的處理速度其實不會比mysql_fetch_row() 函式慢,要用哪個函式還是看使用的需求決定。參數 result_typ 是一個常數值,有以下幾種常數 MYSQL_ASSOC、MYSQL_NUM 與 MYSQL_BOTH。
使用范例

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT last_name,first_name FROM president";
$result=mysql_query($query) or die("Query failed");
while($row=mysql_fetch_array($result))
{
printf("%s %s<BR>
",$row[0],$row[1]);
printf("%s %s<BR>
",$row["last_name"],$row["first_name"]);
}
mysql_free_result($result);

?>

(11) object mysql_fetch_field(int result [,int col_num]);
返回結果集中給定列的相關元數據信息,如果沒有這樣的列,則返回假。如果省略col_num,則對mysql_fetch_field()的后繼調用返回結果集后續列的信息。如果不再有剩余的列。則返回值為假。如果指定了col_num,則其取值范圍為0到mysql_num_fields()-1。在此情況下,mysql_num_fields()返回給定列的相關信息,如果col_num超出范圍,返回假。
<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("information for column %d:<BR>
",$i);
$meta=mysql_fetch_field($result);
if(!$meta)
{
print("No information available<BR>
");
continue;
}
print("<PRE>
");
printf("blob: %s
",$meta->blob);
printf("max_length: %s
",$meta->max_length);
printf("multiple_key: %s
",$meta->multiple_key);
printf("name: %s
",$meta->name);
printf("not_null: %s
",$meta->not_null);
printf("numeric: %s
",$meta->numeric);
printf("primary_key: %s
",$meta->primary_key);
printf("table: %s
",$meta->table);
printf("type: %s
",$meta->type);
printf("unique_key: %s
",$meta->unique_key);
printf("unsigned: %s
",$meta->unsigned);
printf("zerofill: %s
",$meta->zerofill);
print("</PRE>
");
}
?>

(12) array mysql_fetch_lengths(int result);
本函式將 mysql_fetch_row() 處理過的最后一列資料的各欄位資料最大長度放在陣列變數之中。若執行失敗則傳回 false 值。傳回陣列的第一筆資料索引值是 0。

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president" or die("Query failed");
$row_num=0;
while(mysql_fetch_row($result))
{
++$row_num;
printf("Lengths of values in row %d:<BR>
",$row_num);
$len=mysql_fetch_lengths($result);
if(!$len)
{
print("No information available<BR>
");
break;
}
print("<PRE>
");
for($i=0;$i<mysql_num_fields($result);$i++)
printf("Column %d: %s
",$i,$len[$i]);
print("</PRE>
");
}
?>

mysql_fetch_object(int result_id [, int result_typ]);
本函式用來將查詢結果 result 拆到物件變數中。使用方法和 mysql_fetch_array() 幾乎相同,不同的地方在于本函式傳回資料是物件而不是陣列。若 result 沒有資料,則傳回 false 值。另外值得注意的地方是,取回的物件資料的索引只能是文字而不能用數字,這是因為物件的特性。物件資料的特性中所有的屬性(property) 名稱都不能是數字,因此只好乖乖使用文字字串當索引了。參數 result_typ是一個常數值,有以下幾種常數 MYSQL_ASSOC、MYSQL_NUM 與 MYSQL_BOTH。關于速度方面,本函式的處理速度幾乎和mysql_fetch_row() 及 mysql_fetch_array() 二函式差不多,要用哪個函式還是看使用的需求決定。

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT last_name,first_name FROM president";
$result=mysql_query($query) or die("Query failed");
while($row=mysql_fetch_object($result))
printf("%s %s<BR>
",$row->last_name,$row->first_name);
mysql_free_result($result);
?>

(14) array mysql_fetch_row(int result);
作為一個數組返回給定結果集的下一行,如果沒有更多的行,則返回假。列值可作為數組元素訪問,在0到mysql_num_fields()-1范圍內使用列索引。

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT last_name,first_name FROM president";
$result=mysql_query($query) or die("Query failed");
while($row=mysql_fetch_row($result))
printf("%s %s<BR>
",$row[0],$row[1]);
mysql_free_result($result);
?>

(15) string mysql_field_name(int result, int field_index);
返回結果集的給定列的名稱。
col_num 的范圍為0到mysql_num_fields()-1.

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("Name of column %d:",$i);
$name=mysql_field_name($result,$i);
if(!$name)
print("No name available<BR>
");
else
print("$name<BR>
");
}
?>

(16) int mysql_field_seek(int result, int field_offset);
為隨后的mysql_fetch_field()調用設置索引。發布沒有明確列號的mysql_fetch_field()的下一次調用,將返回列col_num的信息。如果搜索成功,返回真,否則返回假。
col_num的范圍為0到mysql_num_fields()-1.

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("Information for column %d:<BR>
",$i);
if(!mysql_field_seek($result,$i))
{
print("Cannot seek to colum<BR>
");
continue;
}
$meta=mysql_fetch_field($result,$i);
if(!$meta)
{
print("No information available<BR>
");
continue;
}
print("<PRE>
");
printf("blob: %s
",$meta->blob);
printf("max_length: %s
",$meta->max_length);
printf("multiple_key: %s
",$meta->multiple_key);
printf("name: %s
",$meta->name);
printf("not_null: %s
",$meta->not_null);
printf("numeric: %s
",$meta->numeric);
printf("primary_key: %s
",$meta->primary_key);
printf("table: %s
",$meta->table);
printf("type: %s
",$meta->type);
printf("unique_key: %s
",$meta->unique_key);
printf("unsigned: %s
",$meta->unsigned);
printf("zerofill: %s
",$meta->zerofill);
print("</PRE>
");
}
?>

(int result_id, int col_num);
返回結果集給定列的表名。對于計算列,此名為空。
col_num的范圍為0到mysql_num_fields()-1.

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
print("column $d:",$i);
printf("Name %s
",mysql_field_name($result,$i));
printf("Table %s
",mysql_field_nmae($result,$i));
print"<BR>
";
?>

(18) string mysql_field_type(int result_id, int col_num);
返回結果集給定列的類型名。類型名敬請等待參考本人的另外“MySQL列類型參考”。
col_num的范圍為0到mysql_num_fields()-1.

<?php
上一篇      目錄      下一篇=pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("colum %d:",$i);
printf("Name %s,
",mysql_field_name($result,$i));
printf("Type %s
",mysql_field_type($result,$i));
}
?>

(19) string mysql_field_flags(int result_id, int col_num);
作為字符串返回結果集中給定列的相關元數據信息,如果出現錯誤,則返回假。這個字符串由以空格分開的詞

組成,說明哪個列的標記值為真。對于假的標記,在字符串中給出相應的詞。
col_num的范圍為0到mysql_num_fields()-1.

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query="SELECT * FORM member";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("column %d:",$i);
printf("Name %s,
",mysql_fields_name($result,$i));
printf("Flags %s
",mysql_fields_flags($result,$i));
}
?>

(20) int mysql_field_len(int result, int field_offset);
返回結果集給定列中值可能的最大長度。
col_num的范圍為0到mysql_num_fields()-1.

<?php
上一篇      目錄      下一篇=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db");
$query="SELECT * FROM member";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("Column %d:",$i);
printf("Name %s,
",mysql_field_name($result,$i));
printf("Len %d
",mysql_field_len($result,$i));
print"<BR>
";
}
?>

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97