PHP 連接 MySQL 資料庫,讓資料顯示於網頁上...and 相關函數簡述 (含PDO範例)
php 連接 MySQL 資料庫以連接笨兔網站的 MySQL 資料庫,取得【學習分享】的資料來做展示,範例設定的 MySQL 相關名稱如下。若不知這些名稱所在,可參考笨兔另一篇隨手筆記【db_001】phpMyAdmin & MySQL 資料庫和資料表的建立、修改、刪除和備份 使用簡介。
範例程式碼:MySQL 函數寫法 - 若不更改變數名稱,基本上只要帶入相關名稱資料即可!(紅色字部份)
<?php/* 資料庫連線資訊 */
$dbhost = 'localhost'; //伺服器名稱
$dbuser = 'root'; //使用者名稱
$dbpass = '12345678'; //使用者密碼
$dbname = 'pcgame'; //資料庫名稱/* 建立資料庫連線 或用mysql_pconnect()也可以*/
/* $存取指標 = mysql_connect("主機名稱或IP", "用戶帳號", "用戶密碼"); */
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connect') ; //or 後是顯示連接失敗訊息,可不用/* 設定語系 */
/* 開啟資料庫 */
mysql_query("SET NAMES 'UTF8'"); //避免做好的網頁顯示亂碼
mysql_select_db($dbname); /* 建立SQL statement */
$sql = "select * from learn limit 5"; //SQL資料表條件,笨兔只顯示5筆做展示,所以設limit 5/* 執行SQL statement */
$result = mysql_query($sql) or die('MySQL query error'); //or後可有可無/* while 迴圈撈取資料,輸入要顯示的欄位名稱。若懶得打名稱,直接輸入欄位排列順序數字索引,從0開始 */
/* 若執行以下兩行是不套用表格*/
// while($row = mysql_fetch_array($result)){
// echo $row['l_id']."_".$row['l_date']."_".$row['l_sort']."_".$row[3]."_".$row[4]."_".$row[5]."<br>"; }
/* 以套用表格來顯示資料唄 ^^*/
echo '<table>';
while($row = mysql_fetch_array($result)){
echo '<tr>';
echo '<td>'.$row[0].'</td>';
echo '<td>'.$row[1].'</td>';
echo '<td>'.$row[2].'</td>';
echo '<td>'.$row['l_number'].'</td>';
echo '<td>'.$row['l_description'].'</td>';
echo '<td>'.$row['l_url'].'</td>';
echo '</tr>';
}
echo '</table>';/* 關閉資料庫連線 */
mysql_close($conn);
?>
範例程式碼1:MySQL 函數寫法
login.php 檔,並放在 Connections 目錄內<?php$dbhost = 'localhost'; //伺服器名稱
$dbuser = 'root'; //使用者名稱
$dbpass = '12345678'; //使用者密碼
$dbname = 'pcgame'; //資料庫名稱
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connect') ; mysql_query("SET NAMES 'UTF8'"); mysql_select_db($dbname);
?>
<?php
include("Connections/login.php"); //載入連線資訊檔
//或載入此行 require_once('Connections/login.php');
//若有出現中文亂碼現象,再加入此行唄! mysql_query("SET NAMES 'UTF8'");
$sql = "select * from learn limit 5";
$result = mysql_query($sql) or die('MySQL query error');
$fdnum=mysql_num_fields($result); //返回結果集中行的fields數目,也就是一行內有幾個欄位啦! echo '<table>';
while($row = mysql_fetch_array($result)){
echo '<tr>'; for ($i=0; $i<$fdnum; $i++){
echo '<td>'.$row[$i].'</td>';
}
echo '</tr>';
}
echo '</table>';
mysql_close($conn);
?>
範例程式碼2:PDO 函數寫法 (2019/7/5)
login.php 檔,並放在 Connections 目錄內<?php$dbhost = 'localhost'; //伺服器名稱
$dbuser = 'root'; //使用者名稱
$dbpass = '12345678'; //使用者密碼
$dbname = 'pcgame'; //資料庫名稱
try{
$dsn = "mysql:host={$dbhost};dbname={$dbname};charset=utf8";
$conn = new PDO($dsn, $dbuser, $dbpass);
//發生錯誤出現錯誤提醒
$conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
//發生錯誤結束資料庫連線並顯示錯誤訊息
die($e -> getMessage());
}
?>
<?php
include("Connections/login.php"); //載入連線資訊檔
$sql = "SELECT * FROM learn limit 5";
$rs = $conn -> prepare($sql);
$rs -> execute();
// while 迴圈撈取資料 echo '<table class="table">';
while($row = $rs -> fetch()){
echo '<tr>';
echo '<td>'.$row[0].'</td>';
echo '<td>'.$row[1].'</td>';
echo '<td>'.$row[2].'</td>';
echo '<td>'.$row['l_number'].'</td>';
echo '<td>'.$row['l_description'].'</td>';
echo '<td>'.$row['l_url'].'</td>';
echo '</tr>';
}
echo '</table>';
?>
PDO函數範例結果:
SQLSTATE[HY000] [2002] Connection refused