在之前的文章中給大家帶來了《PHP中怎樣去連接MySQL數據庫?》,其中詳細的介紹了PHP中怎樣去連接MySQL數據庫,本篇文章我們來看一下PHP通過mysqli_select_db() 函數來選擇數據庫的相關知識。希望對大家有幫助!
上篇文章中講到了PHP通過mysqli_connect()
函數可以去連接MySQL數據庫,其中該函數有一個參數是對應數據庫的名稱,這個參數是可選參數,是可以省略的。如果將這個參數省略的話還需要在后面指定一個默認的數據庫,PHP中就可以通過mysqli_select_db()
函數來指定一個默認數據庫。那接下來我們一起來看看這個函數的用法吧。
mysqli_select_db()
函數
該函數的語法格式也是要分兩種情況,一種是面向對象的寫法,其語法格式如下:
mysqli::select_db(string $dbname)
其中$dbname
表示的就是指定的數據庫名稱,另一種是面向過程的寫法,其語法格式如下:
mysqli_select_db(mysqli $link, string $dbname)
其中需要注意的是:
-
$dbname
還是表示為指定的數據庫名稱, -
$link
表示為通過 mysqli_connect() 函數返回的數據庫連接。
函數若是執行成功的話,返回結果是true,函數執行失敗,返回結果是flase。
接下來我們通過示例來看一下怎樣通過mysqli_select_db() 函數來選擇數據庫,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password); if($mysql -> connect_errno){ die('數據庫連接失敗:'.$mysql->connect_errno); }else{ $mysql -> select_db($dbname); // 選擇名為 test 的數據庫 $sql = 'select name,sex,age from user'; // SQL 語句 $result = $mysql -> query($sql); // 執行上面的 SQL 語句 $data = $result -> fetch_all(); $mysql -> close(); } echo '<pre>'; print_r($data); ?>
上述實例就是通過mysqli_select_db() 函數函數選擇了一個名為“test”的數據庫,輸出結果如下:
上述示例中用的是面向對象的寫法,接下來我們看一下,面向過程的寫法是什么樣的,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli_connect($host, $username, $password); if($link){ mysqli_select_db($link, $dbname); // 選擇名為 test 的數據庫 $sql = 'select name,sex,age from user'; // SQL 語句 $result = mysqli_query($link, $sql); // 執行 SQL 語句,并返回結果 $data = mysqli_fetch_all($result); // 從結果集中獲取所有數據 mysqli_close($link); }else{ echo '數據庫連接失敗!'; } echo '<pre>'; print_r($data); ?>
上述示例中,兩個寫入方法的差別并不大,輸出的結果也是相同的。由此我們便通過mysqli_select_db() 函數來指定一個默認數據庫。那接下來我們來看一下mysqli_query() 函數,它是做什么的又是怎樣使用的呢?
mysqli_query()
函數
在我們上述的實例中,已經完成了指定選擇一個數據庫,那接下來就可以對所選數據庫中的數據表進行查詢、更改以及刪除等操作。完成這些操作就需要通過mysqli_query()
函數了,該函數的語法格式如下:
mysqli::query( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
這是面向對象的寫法,其中需要注意的是:
-
$query
表示要執行的 SQL 語句; -
$resultmode
是可選參數,用來修改函數的行為。
下面是面向過程的語法格式寫法,示例如下:
mysqli_query( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
其中需要注意的是:
-
$link
表示由 mysqli_connect() 函數返回的數據庫連接; -
$query
表示要執行的 SQL 語句; -
$resultmode
是可選參數,用來修改函數的行為。
接下來我們通過示例來看一下mysqli_query() 函數的使用,示例如下:
在開始前,我們先在數據表中添加一些數據用來進行示例
mysql> select * from user;
+—-+——–+——+——+
| id | name | age | sex |
+—-+——–+——+——+
| 1 | 壹壹 | 21 | 男 |
| 2 | 貳貳 | 22 | 男 |
| 3 | 叁叁 | 23 | 女 |
| 4 | 肆肆 | 24 | 女 |
+—-+——–+——+——+
4 rows in set (0.00 sec)
首先我們先來看一下面向對象的寫法,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('數據庫連接失敗:'.$mysql->connect_errno); }else{ $mysql -> set_charset('UTF-8'); // 設置數據庫字符集 $sql = 'select name,sex,age from user'; // SQL 語句 $result = $mysql -> query($sql); // 執行上面的 SQL 語句 $data = $result -> fetch_all(); $mysql -> close(); } echo '<pre>'; print_r($data); ?>
輸出結果:
上述是面向對象的寫法,面向過程的寫法如下所示:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli_connect($host, $username, $password, $dbname); if($link){ $sql = 'select name,sex,age from user'; // SQL 語句 $result = mysqli_query($link, $sql); // 執行 SQL 語句,并返回結果 $data = mysqli_fetch_all($result); // 從結果集中獲取所有數據 mysqli_close($link); }else{ echo '數據庫連接失敗!'; } echo '<pre>'; print_r($data); ?>
輸出結果與上述示例中輸出結果相同,由此我們便完成了通過mysqli_query() 函數對數據庫的查詢。
大家如果感興趣的話,可以點擊《PHP視頻教程》進行