三種方式php
mysql擴展mysql
mysqli擴展sql
pdo_mysql擴展數據庫
查詢本地環境安裝了那些擴展數組
php -m 服務器
mysql擴展鏈接數據庫方法函數
<?php
//利用mysql擴展庫鏈接數據庫
//獲取連接
$conn=mysql_connect("localhost","root","955219");
if(!$conn)
{
//顯示錯誤信息
die("鏈接數據庫失敗".mysql_error());
}
else
{
echo "成功<br/>";
}
//選擇數據庫
mysql_select_db("practice");
//設置字符集
mysql_query("set name utf8");
//發送sql語句
$sql="select * from user";
$res=mysql_query($sql,$conn);
//接收結果並處理
var_dump($res);
// mysql_free_result($res);
mysql_close($conn);
while($row=mysql_fetch_row($res))
{
echo "<br/>";
var_dump($row);
echo "<br/>";
// echo "$row[0]------$row[1]------$row[2]";
foreach ($row as $key=>$val)
{
echo "------$val";
}
}
//釋放連接,關閉資源
//釋放結果集
mysql_free_result($res);
//關閉鏈接(這句話能夠沒有,沒有什麼用,寫這句話以後連接也不是立刻關閉的)
//mysql_close($conn);
?>
fetch
mysqli擴展鏈接數據庫方法編碼
鏈接數據庫服務器
1)資源 mysqli_connect(服務器地址,用戶名,密碼)spa

補充:mysqli_connect默認對一個服務器只鏈接一次
設置鏈接編碼
1)形式1:mysqli_query($link,''set names xxx'')
mysqli_query(connection,query,resultmode);

2) 形式2:mysqli_set_charset($link,"utf8");

3)怎麼肯定用哪一種?
客戶端當前執行腳本的界面是什麼字符集,就設定成什麼字符集
選定要使用的數據庫
1)多用)形式1:mysqli_query($link,''xxxxx'')

2)形式2:mysqli_select_db($link,''xxxx'')
關閉鏈接
主動釋放連接:MySQL服務器的連接資源是有限的,不用了須要釋放(腳本執行結束系統也會自動釋放)
1)mysqli_close($link)

執行增刪改操做
mysqli_query函數返回true或者false,緣由有二:1sql指令自己錯誤,2執行失敗

作個專門負責數據庫初始化的腳本:以後要操做數據庫包含該腳本便可

1,2,3)mysqli_query($link,''inset /delect/update.......'');


執行查詢操做
成功返回結果集:sql指令沒有錯誤,但若是查詢結果自己爲空返回也是true;失敗爲false:sql指令有錯誤


得到結果集行數
1)mysqli_num_rows()

解析結果集
1)mysqli_fetch_assoc():獲取關聯數組,表的表單名字做爲數組下標,元素值做爲數組元素值

2)mysqli_fetch_row():獲取索引數組,只獲取數絕對值,數組下標從0開始

3)mysqli_fetch_array():獲取關聯或者索引數組,一個記錄取兩次,一組是關聯數字,一組是索引數組,可是能夠經過第二個參數決定獲取方式;
MYSQLI_ASSOC:只獲取關聯數組
MYSQLI_NUM:只獲取索引數組
MYSQLI_BOTH:獲取所有

結果集一般操做:獲取全部
pdo鏈接mysql
<?php try { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } ?>