MySql擴展,是PHP利用MYSQL服務器提供的接口,封裝出來的一系列操作MYSQL數據庫的函數集合。
1.開啟拓展在php.ini中,找到 extension_dir 這一項,開啟擴展。
2.可在phpinfo里,查看mysql擴展有沒有開啟成功
基本操作
mysql_connect //接數據庫 mysql_set_charset //設置字符集 mysql_select_db //擇數據庫 #連接數據庫 #ip地址,端口號,賬號,密碼 #localhost為本地,如果端口號是3306可省略 $link = mysql_connect('localhost','root','123456'); var_dump($link); #設置字符集 mysql_set_charset('utf8',$link); #選擇數據庫,'test'為數據庫名 mysql_select_db('test',$link);
數據庫連接成功后得到一個資源類型的值。我們還可以通過執行SQL語句來設置字符集和選擇數據庫。
mysql_query //這個函數用於執行SQL語句,語法跟直接操作mysql語句一樣 mysql_query(“set names utf8”); mysql_query(“use test”);
增刪改操作
增刪改操作都是通過mysql_query函數來執行SQL語句完成,通過將一條sql語句達成操作,如:
$add = 'insert into 表名(字段) values("內容")'; $update = 'update 表名 set [修改內容]'; $del = 'delete from 表名 [條件]'; $res = mysql_query($add); $res = mysql_query($update); $res = mysql_query($del);
在sql操作中怎么寫,在php里就怎么寫,mysql_query() 的作用相當於在mysql里直接執行該語句。
查詢操作
通過mysql_query函數執行查詢SQL語句,會得到一個資源型的結果集,但這個結果幾不可以直接拿來用,我們需要確切的數據。
我們需要通過mysql_fetch_assoc函等數來對結果集進行遍歷,得到我們想要的數據。
mysql_fetch_assoc
1.執行mysql_fetch_assoc函數將會獲得關聯數組,這個數據對應着查詢出來的一條記錄;
2.每次執行mysql_fetch_assoc函數都將獲得一條新的記錄,然后指針下移;
3.當獲取到最后一條記錄后,再執行mysql_fetch_assoc函數,指針下移將無法獲得數據,此時返回false;
根據第2和第3兩點特性,我們可以通過while循環將數據統一保存到一個新的數組變量中,如:
#寫一條查詢語句,用sql_query()執行 $sql = 'select 字段 from 表名 where [查詢條件]'; $result = mysql_query($sql); #設置一個空數組 $rows = array(); # mysql_fetch_assoc 每次獲取一條記錄,將結果放到 $row 中 while( $row = mysql_fetch_assoc($result) ){ #用while循環將每次得到的結果放入數組元素 $rows[] = $row; } var_dump($rows);
我們也可以通過mysql_fetch_row函數解析結果集,得到索引數組(數字下表)
通過mysql_fetch_array函數解析結果集,得到的索引數組記錄和關聯數組都包含
說明:
1)三個函數都可以解析結果集,並且每次都是獲取一條新的記錄;
2)三個函數從效果上來看是一樣的,但是返回的結果中,元素的形式(KEY值或元素的個數)不同
3)我們不僅有select語句類型查詢操作,我們還有show、desc之類的查詢操作,同樣也可以通過解析結果集的方式獲得查詢出的數據。
MYSQL擴展中的相關功能函數
mysql_field_name //獲取結果集中指定位置字段的字段名(下標從0開始) mysql_num_fields //獲取結果集中字段個數(有幾個字段意味着有幾個列) mysql_errno //返回錯誤信息的代號 mysql_error //返回錯誤信息的內容 mysql_insert_id //獲取最新插入數據的ID值