[精讚] [會員登入]
30460

[PHP7] 讀取mysql資料庫的傳統方法

使用傳統預設的方法來連結mysql資料庫

分享此文連結 //n.sfs.tw/11787

分享連結 [PHP7] 讀取mysql資料庫的傳統方法@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2025-05-14 11:00:31 最後編修
2017-09-21 02:59:31 By 張○○
 

自動目錄

這篇只是說明 PHP7 讀取資料庫的傳統方法,因為使用framework習慣了,久而久之竟然忘了怎麼用PHP原生提供的方法:

1. 建立資料庫連線

 

$DBNAME = "db";
$DBUSER = "user";
$DBPASSWD = "password";
$DBHOST = "localhost";  // "192.168.1.10"; 也可以使用ip
$DBPORT = "3306";

$conn = mysqli_connect( $DBHOST, $DBUSER, $DBPASSWD, $DBNAME, $DBPORT);
if (empty($conn)){
  print mysqli_error($conn);
  die ("無法連結資料庫");
  exit;
}

第7行 如果$conn=false代表連結不成功

PHP>=5.5 時所有以 mysql_開頭的函數都會作廢 deprecated,改用以 mysqli_開頭的函數取代

2. 選取資料庫

選擇資料庫使用函數 mysqli_select_db();

if( !mysqli_select_db($conn, $DBNAME)) {
  die ("無法選擇資料庫");
}
// 設定連線編碼
mysqli_query( $conn, "SET NAMES 'utf8'");

3. 取得資料

$sql ="select * from `table` where id=123";
$result = mysqli_query($conn, $sql);

第2行 mysql_query 的回傳值$result有兩種狀況:

  SELECT, SHOW, DESCRIBE, EXPLAIN 等如果成功則取回 resultset ,否則為 false
  INSERT, UPDATE, DELETE, DROP 等成功則傳回 true,否則為 false

4. 取出資料

取回行數

$num = mysqli_num_rows($conn, $result);

取回資料

使用mysqli_fetch_array取回資料, 有下列三種常數狀態:

while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
    print_r( $row);
}
/*
Array
(
    [0] => A123456789
    [1] => 1234
    [2] => 李小美
)
*/
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    print_r( $row);
}
/*
Array
(
    [id] => A123456789
    [pass] => 1234
    [name] => 李小美
)
*/
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
    print_r( $row);
}
/*
Array
(
    [0] => A123456789
    [id] => A123456789
    [1] => 1234
    [pass] => 1234
    [2] => 李小美
    [name] => 李小美
)
*/

常數 MYSQLI_NUM:0 MYSQLI_ASSOC:1 MYSQLI_BOTH:2

取回物件形態資料

while($obj = mysqli_fetch_object($result)){
   print ($obj->id);
}

取回最後一筆異動的索引

$last_id=mysqli_insert_id($conn);

要注意的情況:
  - 一定要有一個欄位有 auto_increment 屬性,否則回傳0
  - 一定之前要有insert或update操作,否則回傳0

5. 關閉連線

雖然PHP, mysql 會自動關閉逾時的連線和記憶體,但也能手動操作

釋放記憶體

mysqli_free_result ( $result )

關閉連線

mysqli_close($conn);

 

END

你可能感興趣的文章

[PHP] 判斷程式是從CLI、本地網路或是網際網路端執行的方法 PHP利用IP判斷程式是從CLI、本地網路或是網際網路端執行的方法

設定Google analytics API #2 -- PHP的程式安裝和撰寫 讓你的網站能夠存取你的Google analytics上面的資料

[PHP] CodeIgniter 3+pure+smarty安裝及環境設置1/2 PHP framework CodeIgniter 3+ pure CSS +smarty Template Engine的整合

使用strcmp來判斷日期是否介於某日期之間 要比較現在日期是否在兩個日期之間,使用字串比對的方法

[PHP] IPv6檢查IP是否在某個網段內 mtachcidr6 要檢查IPv6是否在某個IPv6的網段內?

[PHP] 陣列排序 sort, ksort, asort, usort... 簡單的記錄PHP的陣列排序,因為常常會用到。

隨機好文

[Freebsd] 定時測試 ADSL 是否斷線並重連 中華電信 ADSL 雖有固定 ip,可是他卻會不定時「斷線」, 使用以下的 方法可以定時測試是否斷線,以及重新撥接。

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。

UTF-8的網頁但IE8一片空白 UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

一個邏輯的錯誤刪了全部檔案的經驗 今天本來想做一件很簡單的事,但卻足足浪費我多一倍的時間,再加上刪掉我全部的檔案,原因只是因為我自己的邏輯錯誤。

設計的工作絕不接受比價 拿買陽春麵的價格想買牛肉麵,寧願倒掉也不賣