1、數據庫操做
1. 鏈接MYSQL數據
mysql_connect()
e.g.
mysql
複製代碼 代碼以下:sql
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die(‘Unable to connect, please check connection paremeters');
數據庫
2. 選擇數據庫
mysql_select_db()
鏈接上數據庫後,PHP默認選擇的數據庫未必是咱們後面操做中須要的數據庫,爲確保數據庫選擇正確,通常在數據庫鏈接語句後面還要加上數據庫選擇語句。
e.g.
數組
複製代碼 代碼以下:函數
mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));
fetch
3. 執行SQL語句
mysql_query()
該函數將SQL語句發送到當前活動的數據庫並執行語句,返回結果。
e.g.
編碼
複製代碼 代碼以下:spa
$query = 「SELECT * FROM $table」
$result = mysql_query($query, $db) or die(mysql_error($db));
排序
4. 關閉數據庫
mysql_close()
該函數用於關閉不須要繼續活躍的數據庫,但該方法不是必須的,通常PHP會自動關閉不繼續活躍的數據庫。
e.g.
mysql_close($db);
5. 釋放SQL結果
mysql_free_result()
該函數用於釋放mysql_query()執行結果佔用的內存,該函數不多被調用,除非result很大,佔用太多內存;通常在PHP腳本執行結束以後很自動釋放佔用的內存。
2、SQL執行結果操做
1. 返回執行結果中的一行
mysql_fetch_row()
返回執行結果的當前行的數值數組,執行這個函數後,結果指向下一行。
e.g.
$row = mysql_fetch_row($result);
處理執行結果通常放在while循環中,遍歷每一行
e.g.
while($row = mysql_fetch_row($result))
{……}
2. mysql_fetch_row()的替代方法
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_array()返回鍵值對數組,鍵爲查詢的table的列名;
mysql_fetch_assoc()返回結果時能夠先排序(若是爲可選參數賦值),至關於mysql_fetch_array()+MYSQL_ASSOC
3. 執行結果的字段(列)屬性
mysql_fetch_field()
4. 查詢數據庫中的表名
mysql_list_tables()
e.g.
內存
複製代碼 代碼以下:
$db_name = MYSQL_DB;
$result = mysql_list_tables($db_name);
echo 「數據庫中包含以下表:」;
while ($row = mysql_fetch_row($result))
{
echo $row[0];
}
5. 查詢數據庫的列名(字段名)
mysql_list_fields()
e.g.
複製代碼 代碼以下:
$fields = mysql_list_fields($db_name,$table);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++)
echo mysql_field_name($fields, $i);
3、其餘函數
1. mysql_num_rows()
返回執行結果的行數。
e.g.
$num = mysql_num_rows($result);
2. mysql_num_fields()
返回執行結果的列數(字段數)。
e.g. $num = mysql_num_fields($result);
3.mysql_set_charset()
設置執行結果的編碼,防止在網頁中顯示中文時亂碼。
e.g.
複製代碼 代碼以下:
$query = 「select * from $table_name」;
mysql_query(‘set names utf8′);
$result = mysql_query($query, $db) or die(mysql_error($db));
注: 1. 文中大寫代碼爲預約義的內容,如define(MYSQL_HOST, ‘localhost'); 2. 本文僅總結了PHP操做數據庫的主要函數,完整的內容請參考PHP手冊的相關內容。