讀取資料對於php來說很重要,本篇詳細的說明如何透過PHP MySQL 讀取資料。
從MySQL 資料庫讀取資料
SELECT 語句用於從資料表中讀取資料:
SELECT column_name(s) FROM table_name
我們可以使用* 號碼來讀取所有資料表中的欄位:
SELECT * FROM table_name
如需學習更多關於SQL 的知識,請造訪我們的SQL 教學。
使用MySQLi
以下實例中我們從myDB 資料庫的MyGuests 表讀取了id, firstname 和lastname 列的資料並顯示在頁面上:
#實例(MySQLi - 物件導向)
1 2 3 4 5 6 7 8 9 | <?php $servername = "localhost" ; $username = "username" ; $password = "password" ; $dbname = "myDB" ;
die ( "连接失败: " . $conn ->connect_error);}
$sql = "SELECT id, firstname, lastname FROM MyGuests" ; $result = $conn ->query( $sql );
if ( $result ->num_rows > 0) {
while ( $row = $result ->fetch_assoc()) {
echo "id: " . $row [ "id" ]. " - Name: " . $row [ "firstname" ]. " " . $row [ "lastname" ]. "<br>" ; }} else {
echo "0 结果" ;} $conn ->close();?>
|
登入後複製
以上程式碼解析如下:
首先,我們設定了SQL 語句從MyGuests資料表中讀取id, firstname 和lastname三個字段。之後我們使用改 SQL 語句從資料庫中取出結果集並賦給複製給變數 $result。
函數 num_rows() 判斷傳回的資料。
如果傳回的是多條數據,函數 fetch_assoc() 將結合集放入到關聯數組並循環輸出。 while() 循環出結果集,並輸出 id, firstname 和 lastname 三個欄位值。
以下實例使用MySQLi 面向過程的方式,效果類似以上程式碼:
實例(MySQLi - 面向過程)
1 2 3 4 5 6 7 8 9 10 | <?php $servername = "localhost" ; $username = "username" ; $password = "password" ; $dbname = "myDB" ;
die ( "连接失败: " . mysqli_connect_error());}
$sql = "SELECT id, firstname, lastname FROM MyGuests" ; $result = mysqli_query( $conn , $sql );
if (mysqli_num_rows( $result ) > 0) {
while ( $row = mysqli_fetch_assoc( $result )) {
echo "id: " . $row [ "id" ]. " - Name: " . $row [ "firstname" ]. " " . $row [ "lastname" ]. "<br>" ; }} else {
echo "0 结果" ;}
mysqli_close( $conn );?>
|
登入後複製
使用PDO ( 預處理)
以下實例使用了預處理語句。
選取了MyGuests 表中的id, firstname 和lastname 字段,並放到HTML 表格中:
實例(PDO)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?phpecho "<table style='border: solid 1px black;'>" ; echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>" ;
class TableRows extends RecursiveIteratorIterator {
function construct( $it ) {
parent::construct( $it , self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>" ; }
function beginChildren() {
echo "<tr>" ;
}
function endChildren() {
echo "</tr>" . "\n" ; } }
$servername = "localhost" ; $username = "username" ; $password = "password" ; $dbname = "myDBPDO" ;
try {
$conn = new PDO( "mysql:host=$servername;dbname=$dbname" , $username , $password ); $conn ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn ->prepare( "SELECT id, firstname, lastname FROM MyGuests" );
$stmt ->execute();
$result = $stmt ->setFetchMode(PDO::FETCH_ASSOC);
foreach ( new TableRows( new RecursiveArrayIterator( $stmt ->fetchAll())) as $k => $v ) {
echo $v ; }} catch (PDOException $e ) {
echo "Error: " . $e ->getMessage();} $conn = null; echo "</table>" ;?>
|
登入後複製
本篇詳解了透過php MySQL讀取資料的操作,更多的學習資料清關注php中文網即可觀看。
相關推薦:
關於PHP MySQL 預處理語句的相關知識
怎麼透過PHP MySQL 插入多條數據
如何透過PHP MySQL 插入資料
#
以上是怎樣透過PHP MySQL 讀取數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!