NO IMAGE

php資料庫函式

1:資料庫連線:mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) 返回一個資源控制代碼

mysql_connect() 建立一個到 MySQL 伺服器的連線。當沒有提供可選引數時使用以下預設值:server = ‘localhost:3306’,username = 伺服器程序所有者的使用者名稱,password = 空密碼。

$conn = @mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);

2:資料庫選擇:mysql_select_db(DB_NAME)

如果成功則返回 TRUE,失敗則返回 FALSE

mysql_select_db() 設定與指定的連線識別符號所關聯的伺服器上的當前啟用資料庫。如果沒有指定連線識別符號,則使用上一個開啟的連線。如果沒有開啟的連線,本函式將無引數呼叫 mysql_connect() 來嘗試開啟一個並使用之。

每個其後的 mysql_query() 呼叫都會作用於活動資料庫。

mysql_select_db(DB_NAME)

3:資料庫操作:mysql_query()增刪查改,設定字符集

向與指定的連線識別符號關聯的伺服器中的當前活動資料庫傳送一條查詢。如果沒有指定 link_identifier,則使用上一個開啟的連線。如果沒有開啟的連線,本函式會嘗試無引數呼叫 mysql_connect() 函式來建立一個連線並使用之。查詢結果會被快取。

假定查詢成功,可以呼叫 mysql_num_rows() 來檢視對應於 SELECT 語句返回了多少行,或者呼叫 mysql_affected_rows() 來檢視對應於 DELETE,INSERT,REPLACE 或 UPDATE 語句影響到了多少行。

  3.1:mysql_query()設定字符集:

mysql_query('SET NAMES UTF8')

3.2:PS:

mysql_query() 僅對 SELECT,SHOW,EXPLAIN 或 DESCRIBE 語句返回一個資源識別符號  

 4:提取資料 mysql_fetch_array()第一個引數是一個查詢到的資源控制代碼 通常是mysql_query()返回值5:

mysql_fetch_array —  從結果集中取得一行作為關聯陣列,或數字陣列,或二者兼有

mysql_fetch_array() 中可選的第二個引數 result_type 是一個常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本引數的預設值是 MYSQL_BOTH。

 

如果用了 MYSQL_BOTH,將得到一個同時包含關聯和數字索引的陣列。用 MYSQL_ASSOC 只得到關聯索引(如同 mysql_fetch_assoc() 那樣),用 MYSQL_NUM 只得到數字索引(如同 mysql_fetch_row() 那樣)。

5:mysql_fetch_array 如何連續取出資料:

可以先使用mysql_query()獲取查詢結果資源控制代碼,在while迴圈列出:

$_result = query($_sql);
while(!!$_rows = mysql_fetch_array($_result)){}

6 :影響行數

6.1:mysql_affected_rows: INSERT,UPDATE 或 DELETE 語句

int ( [resource link_identifier])
 

mysql_affected_rows() 返回最近一次與 連線控制代碼 關聯的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數。如果連線控制代碼沒有指定, 則預設使用最近一次由 mysql_connect() 函式開啟的連線控制代碼。

 6.2:mysql_num_rows — 取得結果集中行的數目,只限於select語句只限於

mysql_num_rows — 取得結果集中行的數目  mysql_num_fields — 取得結果集中欄位的數目

int mysql_num_rows ( resource result) 
 

mysql_num_rows() 返回結果集中行的數目。此命令僅對 SELECT 語句有效

7:資料庫關閉:

mysql_close() 關閉指定的連線標識所關聯的到 MySQL 伺服器的連線。如果沒有指定 link_identifier,則關閉上一個開啟的連線。

 8:銷燬結果集:

bool mysql_free_result ( resource result)
 

mysql_free_result() 將釋放所有與結果識別符號 result 所關聯的記憶體。

mysql_free_result() 僅需要在考慮到返回很大的結果集時會佔用多少記憶體時呼叫。在指令碼結束後所有關聯的記憶體都會被自動釋放。

9:錯誤:

9.1:mysql_error:錯誤文字

string mysql_error ( [resource link_identifier])
 

返回上一個 MySQL 函式的錯誤文字,如果沒有出錯則返回 ”(空字串)。如果沒有指定連線資源號,則使用上一個成功開啟的連線從 MySQL 伺服器提取錯誤資訊。

從 MySQL 資料庫後端來的錯誤不再發出警告,要用 mysql_error() 來提取錯誤文字。注意本函式僅返回最近一次 MySQL 函式的執行(不包括 mysql_error()mysql_errno())的錯誤文字,因此如果要使用此函式,確保在呼叫另一個 MySQL 函式之前檢查它的值。

9.2 :mysql_errno :錯誤號碼

int mysql_errno ( [resource link_identifier])
 

返回上一個 MySQL 函式的錯誤號碼,如果沒有出錯則返回 0(零)。

從 MySQL 資料庫後端來的錯誤不再發出警告,要用 mysql_errno() 來提取錯誤程式碼。注意本函式僅返回最近一次 MySQL 函式的執行(不包括 mysql_error()mysql_errno())的錯誤程式碼,因此如果要使用此函式,確保在呼叫另一個 MySQL 函式之前檢查它的值。

10:特殊字元轉義:mysql_real_escape_string

// 轉義資料庫特殊字元
function mysql_string($_string){
if(!get_magic_quotes_gpc()){
if(is_array($_string)){
foreach($_string as $_key=>$_value){
$_string[$_key] = mysql_string($_value);
}
}else{
$_string = mysql_real_escape_string($_string);
}
}
return $_string;
}

 11:資訊類:

 mysql_get_client_info -- 取得 MySQL 客戶端資訊
mysql_get_host_info -- 取得 MySQL 主機資訊
mysql_get_proto_info -- 取得 MySQL 協議資訊
mysql_get_server_info -- 取得 MySQL 伺服器資訊

 

12:其他

    12.1:

mysql_insert_id —  取得上一步 INSERT 操作產生的 ID

 12.2:廢棄的函式:

mysql_create_db('資料庫名') -- 新建一個 MySQL 資料庫
mysql_db_query -- 傳送一條 MySQL 查詢
mysql_drop_db -- 丟棄(刪除)一個 MySQL 資料庫
mysql_list_tables -- 列出 MySQL 資料庫中的表 該函式已經被刪除了,可以用命令 SHOW TABLES FROM DATABASE 來實現該函式的功能
mysql_result -- 取得結果資料

12.3:

mysql_change_user --  改變活動連線中登入的使用者
mysql_client_encoding -- 返回字符集的名稱
mysql_list_dbs --  列出 MySQL 伺服器中所有的資料庫 
mysql_list_fields-- 取得給定表名的資訊。引數是資料庫名和表名。返回一個結果指標
mysql_list_tables() 接受一個資料庫名並返回和 mysql_query() 函式很相似的一個結果指標。用 mysql_tablename() 函式來遍歷此結果指標,或者任何使用結果表的函式,例如 mysql_fetch_array()。
mysql_thread_id -- 返回當前執行緒的 ID
mysql_tablename() 接受 mysql_list_tables() 返回的結果指標以及一個整數索引作為引數並返回表名。可以用 mysql_num_rows() 函式來判斷結果指標中的表的數目。用 mysql_tablename() 函式來遍歷此結果指標,或者任何處理結果表的函式,例如 mysql_fetch_array()
mysql_unbuffered_query --  向 MySQL 傳送一條 SQL 查詢,並不獲取和快取結果的行 
mysql_data_seek() 將指定的結果標識所關聯的 MySQL 結果內部的行指標移動到指定的行號。接著呼叫 mysql_fetch_row() 將返回那一行。
mysql_field_name --  取得結果中指定欄位的欄位名 
mysql_field_type --  取得結果集中指定欄位的型別 
mysql_field_table --  取得指定欄位所在的表名 
mysql_field_seek --  將結果集中的指標設定為制定的欄位偏移量 
mysql_fetch_lengths --  取得結果集中每個輸出的長度
mysql_field_len --  返回指定欄位的長度