[精讚] [會員登入]
29817

[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]解決ksort新增的SORT_NATURAL|SORT_FLAG_CASE方法 php>=5.4中ksort函數多了SORT_NATURAL 和 SORT_FLAG_CASE 旗標,對舊版的PHP中要怎麼辦?

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

[PHP] 移除陣列或字串中的重覆元素 移除陣列或字串中的重覆元素

[PHP+ci4] codeignitor4+ smarty5 這篇整合 php 的framework codeignitor4 + smarty5。

[PHP] 字串編碼及解碼函式 為何要將字串編碼?理由很簡單,就是不要讓人家輕易的知道字串內容是什麼。例如點選分頁時,我們常會用這樣的連結: index

[PHP] 檢查IP是否在某個網段內 mtachcidr 要檢查IP是否在某個網段內,要寫幾行?10行?5行? 不用,只要2行。以下是我寫的 code /** * matchCI

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

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

[jQuery] select 元件的取值及給值 html中的元件select,在jquery中要如何使用?

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

[札記] 2016.7~12月札記 札記,只是札記

世紀帝國征服者新版本--被遺忘的帝國 世紀帝國征服者新版本--被遺忘的帝國 世紀二代的征服者是精典遊戲中的精典,aofe更好玩...