1、PHP鏈接MySQL服務器php
什麼是PHP的MySQL函數庫?mysql
即一套PHP的函數庫擴展包,在PHP文件下的「ext/php_mysql.dll」sql
配置PHP做爲MySQL服務器的客戶端:數據庫
PHP配置文件php.ini中開啓「extension=php_mysql.dll」數組
2、PHP操做MySQL的函數庫步驟服務器
①鏈接數據庫服務器函數
mysql_connect 打開一個鏈接(推薦)fetch
mysql_pconnect 打開一個持久鏈接(不推薦)spa
mysql_connect("$host","$username","$password");code
鏈接成功返回MySQL鏈接標識符,鏈接失敗返回false
例:
$link=mysql_connect("localhost","root","1234");
②判斷是否鏈接成功
if(!$link){
exit("數據庫服務器鏈接失敗,錯誤信息:".mysql_error()."錯誤號:".mysql_errno());
}
mysql_error():返回上一步操做的錯誤信息
mysql_errno():返回上一步操做的錯誤號
③設置客戶端字符集
mysql_set_charset("utf8");
mysql_query("set names utf8");
④選擇數據庫
$db=mysql_select_db("$db_name" [,$link]);
打開所鏈接的數據庫服務器中的指定數據庫,若不指定第二個鏈接參數,則默認打開最近的鏈接,成功返回true,失敗返回false
⑤準備SQL語句
$sql="SQL語句";
注:引號中的SQL語句無需以分號結束
⑥發送SQL語句
$res=mysql_query($sql [,$link]);
對於DQL查詢語句(select/explain/show/desc/describe)執行成功返回結果集資源,執行失敗返回false;對於其餘類型的sql語句,執行成功返回true,執行失敗返回false
⑦處理結果
if(!$res){
echo "執行失敗,錯誤信息:".mysql_error();
}else{
echo "執行成功";
}
mysql_insert_id([$link]):獲取主鍵ID,即auto_increment的值
mysql_affected_rows([$link]):獲取受影響數據條數(適用於增、刪、改)
mysql_num_rows($res):獲取DQL查詢語句返回的結果集資源包含的數據條數
mysql_fetch_array($res [,MYSQL_BOTH]):將結果集資源解析成索引和關聯的混合數組
MYSQL_BOTH:可選參數,默認值,MYSQL_BOTH將獲得一個同時包含索引和關聯的混合數組;MYSQL_ASSOC將只獲得一個關聯數組,字段名做爲鍵名字段值做爲鍵值,做用同mysql_fetch_assoc();MYSQL_NUM將只獲得一個索引數組,做用同mysql_fetch_row();
mysql_fetch_row($res):將結果集資源解析成索引數組
mysql_fetch_assoc($res):將結果集資源解析成關聯數組,字段名做爲鍵名字段值做爲鍵值
mysql_fetch_object($res):將結果集資源解析成對象
⑧關閉數據庫鏈接
mysql_free_result($res); 釋放DQL查詢語句的關聯結果集資源
mysql_close();
例1:
$link=mysql_connect("localhost","root",""); if(!$link){ exit("鏈接MySQL服務器失敗,錯誤信息爲:".mysql_error()."錯誤號爲:".mysql_errno()); } mysql_set_charset("utf8"); $db=mysql_select_db("test01"); if(!$db){ exit("鏈接數據庫失敗,錯誤信息爲:".mysql_error()."錯誤號爲:".mysql_errno()); } $sql="insert users(username,password,sex) values('autumn','1111',null)"; $res=mysql_query($sql); if($res && mysql_affected_rows()>0){ echo "成功添加了".mysql_affected_rows()."條數據"; }else{ echo "添加數據失敗,錯誤信息爲:".mysql_error()."錯誤號爲:".mysql_errno(); } mysql_close();
例2:
$link=mysql_connect("localhost","root","") or die("鏈接數據庫服務器失敗,錯誤信息爲:".mysql_error()."錯誤號爲:".mysql_errno()); mysql_set_charset("utf8"); $db=mysql_select_db("test01",$link) or die("鏈接數據庫失敗,錯誤信息爲:".mysql_error()."錯誤號爲:".mysql_errno()); $sql="select * from users"; $res=mysql_query($sql,$link); if(!$res){ echo "查詢數據失敗,錯誤信息爲:".mysql_error()."錯誤號爲:".mysql_errno(); }elseif(mysql_num_rows($res)==0){ echo "當前數據表中無數據"; }else{ echo "<table border='1' width='800'>"; echo "<tr>"; echo "<td>id</td>"; echo "<td>username</td>"; echo "<td>password</td>"; echo "<td>sex</td>"; echo "</tr>"; while($data=mysql_fetch_assoc($res)){ echo "<tr>"; echo "<td>".$data['id']."</td>"; echo "<td>".$data['username']."</td>"; echo "<td>".$data['password']."</td>"; echo "<td>".$data['sex']."</td>"; echo "</tr>"; } echo "</table>"; } echo "<br>"; echo "共查詢到".mysql_num_rows($res)."條數據"; mysql_free_result($res); mysql_close();