MySQL函數庫
今天咱們來看一下MySQL函數庫,這個函數庫是一個外部函數庫!這個函數提供了對於MySQL數據庫進行操做的經常使用函數,如鏈接MySQL服務器、打開數據庫、執行SQL語句等。因此這個函數庫的功能對於咱們來講是很是重要的!
其實,MySQL數據庫是整個程序開發的最底層,咱們在程序開發時,就必須爲其添加一層漂亮的外衣,這層漂亮的外衣就是圖形化用戶界面(Graphical User Interface,簡稱GUI,又稱圖形用戶接口),也就是使用者只須要具體基本的計算機知識,而後經過鼠標,就能夠實現某些複雜的功能!其實,咱們如今所使用的Windows操做系統就是典型的GUI!
1. mysql_connect
功能:創建到MySQL服務器的鏈接
語法:[$變量名稱=]mysql_connect(「服務器名稱:端口」,」用戶名」,」密碼」);
若是正確的鏈接到了MySQL服務器,則返回值的數據類型爲資源(resource),不然將返回布爾型false
2. mysql_select_db
功能:打開指定數據庫
語法:[$變量名稱=]mysql_select_db(「數據庫名稱」[,鏈接標識符]);
若是省略鏈接標識符,則默認狀況下使用剛剛打開的服務器鏈接
3. mysql_query
功能:執行MySQL命令
語法:[$變量名稱=]mysql_query(「SQL命令」[,鏈接標識符]);
若是省略鏈接標識符,則默認狀況下使用剛剛打開的服務器鏈接
理論上來講,執行的SQL命令爲任意SQL命令,如建立數據表、存儲過程、觸發器等,但實際上來講,SQL命令通常只是記錄的插入、刪除、更新和查詢!由於,咱們在程序設計之初,首先就是數據庫的規劃,對於數據庫中存在多少張數據表、數據表中存在多少個字段以及數據表之間的關係,咱們能夠根據項目需求來規劃,可是數據表中到底有多少記錄,則無從規定,因此,SQL命令就是記錄的增、刪、改、查這四大操做!
另外,SQL[Structured Query Language,結構化查詢語言]中的Query意爲查詢,但不要理解爲查找,查找只是一種查詢命令!SQL命令通常能夠分爲DDL和DML,這裏的Query是全部SQL命令的統稱。這一點對於初始者來講,必需要分清!
若是執行的SQL命令爲SELECT,SHOW,EXPLAIN 或 DESCRIBE,這些命令正確執行的話,返回結果的數據類型爲資源;錯誤執行的話,返回結果爲布爾型false。對於其餘全部的命令,正確執行返回結果爲true;錯誤執行返回結果爲false。
4. mysql_num_rows
功能:返回結果集中包含的記錄數目
語法:[$變量名稱=]mysql_num_rows($結果集名稱);
此命令僅對 SELECT 語句有效
5. mysql_num_fields
功能:返回結果集中包含的字段數目
語句:[$變量名稱=]mysql_num_fields($結果集名稱);
6. mysql_field_name
功能:獲取指定索引位置的字段名稱
語法:[$變量名稱=]mysql_field_name($結果集名稱,字段索引位置);
說明:字段索引位置從0開始編號
7. mysql_fetch_array
功能:從結果集中抽取一行做爲數字數組或關聯數組或二者兼之
語法:[$變量名稱=]mysql_fetch_array($結果集名稱[,MYSQL_NUM|MYSQL_ASSOC|MYSQL_BOTH]);
8. mysql_fetch_row
功能:從結果集中抽取一行做爲數字數組
語法:[$變量名稱=]mysql_fetch_row($結果集名稱);
9. mysql_fetch_assoc
功能:從結果集中抽取一行做爲關聯數組
語法:[$變量名稱=]mysql_fetch_assoc($結果集名稱);
10. mysql_insert_id
功能: 取得上一步 INSERT 操做產生的 ID
語法:[$變量名稱=]mysql_insert_id([鏈接標識符]);
mysql_insert_id() 將 MySQL 內部的 C API 函數 mysql_insert_id() 的返回值轉換成 long(PHP 中命名爲 int)。若是 AUTO_INCREMENT 的列的類型是 BIGINT,則 mysql_insert_id() 返回的值將不正確。能夠在 SQL 查詢中用 MySQL 內部的 SQL 函數 LAST_INSERT_ID() 來替代。
11. mysql_affected_rows
功能:獲取insert、update、delete操做所影響的記錄數
語法:[$變量名稱=]mysql_affected_rows([鏈接標識符]);
12. mysql_free_result
功能:釋放結果集
語法:[$變量名稱=]mysql_free_result($結果集名稱);
13. mysql_close
功能:關閉數據庫鏈接
語法:[$變量名稱=]mysql_close([鏈接標識符]);
咱們還要來看一個案例吧!
在MySQL內建立以下結構的數據表,而且添加記錄
use test;
create table users
(
uid smallint unsigned not null primary key auto_increment,
username varchar(20) not null unique,
password varchar(32) not null
);
insert into users(username,password) values('admin','21232f297a57a5a743894a0e4a801fc3');
insert into users(username,password) values('test','098f6bcd4621d373cade4e832627b4f6');
insert into users(username,password) values('ccjsj','12a5163ff108df1d7314dd28a0ff29d2');
如今,咱們的任務就是經過PHP的應用程序來讀取數據庫中的數據!
$conn = mysql_connect("localhost","root","ccjsj");
mysql_select_db("test");
$sql = "select * from users";
$result = mysql_query($sql);
$rowsNum = mysql_num_rows($result);
$fieldsNum = mysql_num_fields($result);
$table .= "<table width=\"800\" cellpadding=\"8\" cellspacing=\"0\" border=\"1\" align=\"center\">\n";
$table .= "<tr>\n";
for($i=0;$i<$fieldsNum;$i++)
{
$table .= "<td>" . mysql_field_name($result,$i) . "</td>\n";
}
$table .= "</tr>\n";
if($rowsNum)
{
while($row = mysql_fetch_array($result))
{
$table .= "<tr>\n";
for($i=0;$i<$fieldsNum;$i++)
{
$table .= "<td>" . $row[$i] . "</td>\n";
}
$table .= "</tr>\n";
}
}
$table .= "</table>\n";
echo($table);
mysql_free_result($result);
mysql_close();
PHP的源代碼如圖一
[圖一]
運行結果如圖二
[圖二]
瀏覽器的源代碼如圖三
[圖三]