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