1. 程式人生 > >php連接數據庫的兩種方式- 面向過程 面向對象

php連接數據庫的兩種方式- 面向過程 面向對象

ont see roo root 插入 () 字數 _id rom

一、面向對象
1. 鏈接數據庫
$conn = @new mysqli("127.0.0.1","root","","mydb");

if($conn->connect_errno){ //返回鏈接錯誤號
// 返回鏈接錯誤信息
die("數據庫鏈接失敗:".$conn->connect_error);
}

2. 選擇數據庫
$conn->select_db("mydb") or die("選擇數據庫失敗:".$conn->error);

3.設置字符集編碼
$conn->set_charset("utf8") or die("設置字符集失敗:".$conn->error);

4. 準備SQL語句
$sql = <<<sql
select * from tb1;
sql;

5. 執行SQL語句,返回結果集或者布爾類型true/false
$res = $conn->query($sql);

6. 返回結果集中的字段數
var_dump($res->field_count);
返回結果集中的總行數
var_dump($res->num_rows);

7. 返回關聯數組和索引數組
var_dump($res->fetch_array());
返回索引數組
var_dump($res->fetch_row());
返回關聯數組
var_dump($res->fetch_assoc());
返回一個對象
var_dump($res->fetch_object());

8. 將結果集指針移到指定位置
$res->data_seek(0);


9. 返回結果集中的一個字段,並將指針移到下一列
var_dump($res->fetch_field());
直接返回結果集中的所有字段
var_dump($res->fetch_fields());


10.釋放結果集資源
$res->close();// $res->free();
關閉數據庫連接
$conn->close();


二、面向過程

1.連接數據庫

@ $conn = mysqli_connect("127.0.0.1", "root", "slk5550123", "mydb");

if(mysqli_connect_error($conn)){ //返回錯誤信息
exit("數據庫連接失敗,失敗號".mysqli_connect_errno($conn)."失敗信息:".mysqli_connect_error($conn));
}

  連接數據庫同時判斷
@ $conn = mysqli_connect("127.0.0.1","root","slk55501233","mydb") or die("數據庫連接失敗,失敗信息:".mysqli_connect_error($conn));


連接數據庫: mysqli_connect
參數: ① 主機地址 ②MySql用戶名 ③MySql密碼 ④選擇鏈接的數據庫 ⑤端口號
返回: 如果鏈接成功,返回資源類型的標識符號
如果連接失敗,返回false

如果有MySql建立的連接不止一條,那麽以後操作數據庫的各種函數,都必須傳入返回的連接符號。
如果與MySql建立的連接只有一條,那麽以後操作數據庫的各種函數就不必傳入這個標識符號


3. 選擇數據庫mysqli_select_db
參數: ① 資源表示符 ②選擇的數據庫名稱
返回: 連接成功返回true,連接失敗返回false

如果修改數據庫成功,則資源標識符中的數據庫就會發生變更
如果修改失敗,而沒有通過代碼終止操作,則後續代碼可以使用原數據庫繼續執行。

//選擇數據庫同時判斷
mysqli_select_db($conn,"mydb") or die("數據庫選擇失敗");

4.設置字符集編碼
mysqli_set_charset($conn,"utf8");
//只能是utf8,而不能使utf-

5.編寫sql語句
$sql = "select * from tb1";

6. 執行sql語句
如果是增刪改,將返回bool類型 表示是否成功 DML
如果是查詢,將返回資源結果集 DQL
如果查詢失敗,返回false


$res = mysqli_query($conn,$sql);$res = mysqli_query($conn,$sql);

7.返回數據庫中操作影響的行數及插入語句的ID

DML時: 返回上一次操作時,受影響的行數
var_dump(mysqli_affected_rows($conn));
執行插入語句時,返回上次最新插入的主鍵id
var_dump(musqli_insert_id($conn))

DQL時,返回資源結果集中的行數
mysqli_num_rows($res);
DQL時,返回資源結果集中的字段數
mysqli_num_fields($res);

8. 處理結果集,返回關聯數組和索引數組
參數: ① 需要處理的結果集
   ② 返回那種數組格式,mysqli_assoc - 關聯數組
mysql_num 數字數組
mysql_both 默認,同時產生關聯和數字數組


返回關聯數組
//mysqli_fetch_assoc($result)
返回索引數組
//mysqli_fetch_row($result)
返回一個對象
//mysqli_fetch_object($result)

9.返回結果集中的一個字段,並將指針移到下一列
mysqli_data_seek:設置結果集指針位置
mysqli_data_seek($res, 0);

返回結果集中每一列字段的信息(字段名、表名、數據庫名、字段類型、長度等)*/
mysqli_fetch_field($res);


10.釋放查詢資源結果集並關閉數據庫連接
  mysql_free_result($res);
  關閉數據庫連接
  mysql_close($conn);

php連接數據庫的兩種方式- 面向過程 面向對象