[精讚] [會員登入]
29806

[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] 處理mail 函式的標題中文字亂碼 PHP的mail函式若標題有中文字得先處理過,否則收信者會看到亂碼

[PHP] 2個程式的觀念 整理2個PHP的程式觀念,參考參考。

PHP 數字加解密函式 自寫的數字加解密,勉強用

[PHP] preg_match 的貪婪和不貪婪比對 在php preg_match中預設是採用貪婪比對,太貪婪反而不符合需要,因此得採用「非貪婪比對」...

[PHP] 讀取作業系統程式執行結果 PHP讀取作業系統程式執行結果

[PHP] 類別中要怎麼使用callback function 召回函數(回呼函數)? 在類別中使用標準函數,若其中的callback 函數也是在類別中,該怎麼使用?

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

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

談借錢 人借錢時手心向上頭向下,人還錢時手心向下頭向上

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

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