使用mysql_connect( )函數,建立和MySQL伺服器的通道(可能同一部電腦),該通道以連結識別(link identifier)稱之。
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
此處的$link變數在mysql 的函數語法格式以【resource link_identifier】此resource 表變數的型式。
使用mysql_select-db( )函數,選擇步驟一指定伺服器中的資料庫(因可能有多個資料)。
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db( “myDataBase”, $link); // $link 可省略
或
mysql_select_db( “myDataBase”);
或
$myDB = “myDataBase”;
mysql_select_db( $myDB);
使用mysql_query()函數,來執行各種資料庫的操作。操作的內容以SQL語言表之。
如顯示步驟中指定的資料庫中的某一表格(myTable)中所有的內容。
$result = mysql_query (“SELECT * from myTable”);
$result為一指標指向工作結果區(工作表格),在mysql 的函數語法格式以【resource result】此resource 表變數的型式。
使用mysql_free_result函數,從步驟三的工作結果區中,逐列取出資料
$result = mysql_query("SELECT * FROM table1", $link);
$rows = mysql_fetch_array($result);
echo "$rows[“name”], $rows[“sex”] \n";
使用mysql_free_result函數,釋放工作結果區的記憶體空間。
$result = mysql_query (“SELECT * from myTable”);
mysql_free_result($result); ?> |
使用mysql_close函數,關閉和伺服機連結。
$link = mysql_connect("localhost", "mysql_user", "mysql_password") or exit("Could not connect"); print ("Connected successfully"); mysql_close($link); ?> |
關閉 MySQL 伺服器連線。
bool mysql_close ( [resource link_identifier])
布耳變數值(Boolean)
成功回傳 TRUE
失敗回傳 FALSE
本函式關閉與 MySQL 資料庫伺服器的連線。若無指定參數 link_identifier 則會關閉最後的一筆連線。用 mysql_pconnect() 連線則無法使用本函式關閉。實際上本函式不是一定需要的,當 PHP 整頁程式結束後,將會自動關閉與資料庫的非永久性 (non-persistent) 連線。成功傳回 true、失敗傳回 false 值。
$link = mysql_connect("localhost", "mysql_user", "mysql_password") or exit("Could not connect"); print ("Connected successfully"); mysql_close($link); ?> |
mysql_connect()
建立和 MySQL 伺服器間的連線。
resource mysql_connect(string [hostname] [:port], string [username],
string [password]);
伺服器的通道指標,語法以「resource link_identifier」表示之。
本函式建立與 MySQL 伺服器的連線。其中所有的參數都可省略。當使用本函式卻不加任何參數時,參數 hostname 的內定值為 localhost、參數 username 的內定值為 PHP 執行行程的擁有者、參數 password 則為空字串 (即沒有密碼)。而參數 hostname 後面可以加冒號與埠號,代表使用那個埠與 MySQL 連接。當然在使用資料庫時,早點使用 mysql_close() 將連線關掉可以節省資源。
$link = mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect"); print ("Connected successfully"); mysql_close($link); ?> |
$Database = “myDatadase”;
mysql_connect ("localhost", "kh", "75kh07");
$db = mysql_select_db( $Database );
if ( ! $db ) {
echo "無法開啟資料庫!";
exit;
}
這是一位未具名網友提供的範例 (18-Feb-1999)
$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 "發生錯誤,請通知站長";
}
$row = mysql_fetch_row($res);
echo "未來您使用的號碼為: ".$row[0];
?>
mysql_close()
傳回前一 MySQL 操作的錯誤訊息的代碼。前一 MySQL 操作不含mysql_error() and mysql_errno()二函數。
int mysql_errno ( [resource link_identifier])
前一MySQL 函數作業錯誤時,傳回錯誤訊息的代碼。
前一MySQL 函數作業正常時,傳回0。
mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("nonexistentdb"); echo mysql_errno() . ": " . mysql_error(). "\n"; mysql_select_db("kossu"); mysql_query("SELECT * FROM nonexistenttable"); echo mysql_errno() . ": " . mysql_error() . "\n"; ?> |
上述案例的輸出為:
1049: Unknown database 'nonexistentdb' 1146: Table 'kossu.nonexistenttable' doesn't exist |
傳回前MySQL工作的錯誤訊息內容。前一 MySQL 操作不含mysql_error() and mysql_errno()二函數。
string mysql_error ( [resource link_identifier])
前一MySQL 函數作業錯誤時,傳回錯誤訊息的內容。
前一MySQL 函數作業正常時,傳回空字串。
mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("nonexistentdb"); echo mysql_errno() . ": " . mysql_error(). "\n"; mysql_select_db("kossu"); mysql_query("SELECT * FROM nonexistenttable"); echo mysql_errno() . ": " . mysql_error() . "\n"; ?> |
上述案例的輸出為:
1049: Unknown database 'nonexistentdb' 1146: Table 'kossu.nonexistenttable' doesn't exist |
傳回陣列資料。以資料庫的欄位名稱為索引值。
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。
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
echo $row["user_id"];
echo $row["fullname"];
}
mysql_free_result($result);
?>
$link = mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("database", $link); $result = mysql_query("SELECT * FROM table1", $link); $rows = mysql_fetch_array($result); echo "$rows[“name”], $rows[“sex”] \n"; ?> |
傳回單列的各欄位。以數字為索引值並由 0 開始起。
array mysql_fetch_row(int result);
陣列 (array)
本函式用來將查詢結果 result 之單列拆到陣列變數中。陣列的索引是數字索引,第一個的索引值是 0。若 result 沒有資料,則傳回 false 值。
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_row($result)) {
echo $row[0];
echo $row[1];
}
mysql_free_result($result);
?>
$link = mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("database", $link); $result = mysql_query("SELECT * FROM table1", $link); $num_rows = mysql_fetch_rows($result); echo "$rows[0], $rows[1] \n"; ?> |
mysql_fetch_array() mysql_fetch_object() mysql_data_seek() mysql_fetch_lengths() mysql_result()
釋放工作結果區的記憶體空間。
bool mysql_free_result ( resource result)
釋放和result識別相關的記憶體空間。
布耳變數值(Boolean)
成功回傳 TRUE
失敗回傳 FALSE
當該程式(script)執行完畢,這些空間會自動的解除。除非使用大量的記憶,否則不需執行本 mysql_free_result() 函數。
傳回最後一次使用 INSERT 指令的 ID。
int mysql_insert_id(int [link_identifier]);
1. 0 : 若前一SQL查詢未產生AUTO_INCREMENT值時,故必須碓定使用本mysql_insert_id()函數,緊接著產生AUTO_INCREMENT值函數之後。
2. 上筆的插入記錄的索引值:為前一INSERT查詢,對定義為AUTO_INCREMENT欄位所產生的值。
本函式可以得到最後一次使用 INSERT 到 MySQL 資料庫的執行 ID。sleibowitz@btcwcu.org (13-May-1999) 指出在 PHP 3.0.7 版用 REPLACE 也和使用 INSERT 一樣,可以使用本函式獲得 ID。
若未指定通路識別( link_identifier )時,假設為最後建立的通道。
mysql_connect("localhost", "mysql_user", "mysql_password") or die("could not connect"); mysql_select_db("mydb"); mysql_query("INSERT INTO mytable (product) values ('kossu')"); printf ("Last inserted record has id %d\n", mysql_insert_id()); ?> |
列出指定資料表的欄位 (field)。
int mysql_list_fields(string database_name, string table_name, int [link_identifier]);
整數
本函式可以得到指定的資料表的所有欄位。傳回的欄位資訊可以供 mysql_field_flags()、mysql_field_len()、mysql_field_name() 及 mysql_field_type() 等函式使用。若有錯誤則傳回 -1。
取得傳回列的數目。
int mysql_num_rows(int result);
整數
本函式可以得到傳回列的數目。
常用以動態的產生,資料表的內容數。
查詢在table1 內的資料筆數。
$link = mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("database", $link); $result = mysql_query("SELECT * FROM table1", $link); $num_rows = mysql_num_rows($result); echo "$num_rows Rows\n"; ?> |
送出一個 query 字串,給MySQL對現用的資料庫執行作業。
resource mysql_query ( string query [, resource link_identifier [, int result_mode]])
1. 當 query 指令是 UPDATE、INSERT 及 DELETE 時,則傳回的值可能是 true 或者 false;
2. 當 query 指令是SELECT ,SHOW,EXPLAIN or DESCRIBE等陳述時,則傳回一個指標用以指向工作的結果區(為一二維表格)。指標在mysql 的函數語法格式以【resource result】此resource 表變數的型式。
3. joey@samaritan.com (09-Feb-1999) 指出,當傳回 false 時,並不是執行成功但無傳回值,而是查詢的字串有錯誤。
4. 傳回非false的值,僅代表該查詢的語法是合乎文法,但不保證語意是正確的。
本函式送出 query 字串供 MySQL 做相關的處理或者執行。若未指定通路識別( link_identifier )時,則程式會自動假設為最後建立的通道。
參數result_mode 為一選項參數,其值有:
1. MYSQL_USE_RESULT
2. MYSQL_STORE_RESULT
預設值為:MYSQL_STORE_RESULT, 即結果(result)是暫存在緩衝區(buffered)內中。.
參見mysql_unbuffered_query() 的另一種相反的作法。
注意:SQL查詢字串不可以分號(;)結束。
查詢字串的語法錯誤,傳回FALSE。
$result = mysql_query("SELECT * WHERE 1=1") or die("Invalid query"); ?> |
例二:若欄位(my_col)不為資料表(my_tbl)的欄位,則回傳FALSE。
$result = mysql_query("SELECT my_col FROM my_tbl") or die ("Invalid query"); ?> |
mysql_select_db() mysql_connect()
從MySQL伺服站中,選擇一個資料庫。
bool mysql_select_db ( string database_name [, resource link_identifier])
布耳變數值(Boolean)
成功回傳 TRUE
失敗回傳 FALSE
本函式mysql_select_db() 設定在連結識別(link identifier) 指定的伺服器上的現用的資料庫,以供之後的資料查詢作業 (query) 處理。成功傳回 true,失敗則傳回 false。
如果沒有指定連結識別(link identifier),則假設為最後打開的連結【mysql_connect()】。
mysql_connect() mysql_pconnect() mysql_query()
本文来源:https://www.2haoxitong.net/k/doc/b1a792ed102de2bd96058891.html
文档为doc格式