[精讚] [會員登入]
29957

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

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

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

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

自動目錄

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

1. 建立資料庫連線

$DBNAME = "db";
$DBUSER = "user";
$DBPASSWD = "password";
$DBHOST = "localhost";

$conn = mysqli_connect( $DBHOST, $DBUSER, $DBPASSWD);
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] 移除陣列或字串中的重覆元素 移除陣列或字串中的重覆元素

[PHP+ci4] codeignitor4 Cache 及 Session 使用 memcached php 的framework codeignitor4 中的cache和session使用memcached

[PHP] 位元運算 (Bitwise operation)及和PERL比較 PHP 的位元運算,及和PERL比較整理

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

[CodeIgniter 3] 修改或插入資料時遇到函數的處理 CI3 中要新增或修改的資料中如果有 now()這類的函數,要怎麼處理?

PHP cli 傳入參數 php cli (PHP命令列的傳入參數使用方法

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

為什麼要買長達二十年的保單? 為什麼要買長達二十年的保單?找一個可以說服我買二十年保單的理由。

沒有非誰做不可的事,也沒有不可被取代的人 沒有非誰做不可的事,也沒有不可被取代的人

[HP DL380G7] 生效啟動第3,4片網卡/開啟或關閉內建的網卡 HP DL380G7 預設第3,4片網卡裝完系統後找不到,難道是壞了?要怎麼辦?

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

Linux shell 的date表示法 linux下SHELL中的date表示法