MySQL + PHP


PHP連接MySQL有三種方式 : MySQL、MySQLi、PDO


以下是兩種MySQLi的連接方式

建立一個mysqlconnect-01.php如下 :

<?php 
$host = 'localhost'; 
$dbuser ='user_name'; 
$dbpassword = 'user_password'; 
$dbname = 'db_name'; 
$link = mysqli_connect($host,$dbuser,$dbpassword,$dbname); 
if($link){ 
mysqli_query($link,'SET NAMES utf8'); 
echo "正確連接資料庫"; 
} else { 
echo "不正確連接資料庫</br>" . mysqli_connect_error(); 
?>

$host,$dbuser,$dbpassword,$dbname 需要依照你的情況,自己設定正確。
如果採用預設,可以使用
$host = 'localhost'; 
$dbuser ='root'; 
$dbpassword = ''; 
$dbname = 'mysql'; 

建立一個mysqlconnect-02.php如下 :

<?php 
$host = 'localhost'; 
$dbuser ='user_name'; 
$dbpassword = 'user_password'; 
$dbname = 'db_name'; 
$mysqli = new mysqli($host,$dbuser,$dbpassword,$dbname); 
// Check connection 
if ($mysqli -> connect_errno) { 
echo "Failed to connect to MySQL: " . $mysqli -> connect_error; 
exit(); 
} else { 
echo "正確連接資料庫"; 
}
?>

$host,$dbuser,$dbpassword,$dbname 也是一樣,需要依照你的情況,自己設定正確。

以上兩種不同的連接方式

$link = mysqli_connect($host,$dbuser,$dbpassword,$dbname); 
這種連接方式,稱之為 Procedural style (程序型式)。

$mysqli = new mysqli($host,$dbuser,$dbpassword,$dbname); 
這種連接方式,稱之為 Object oriented style (物件導向型式)。

測試後,都顯示~正確連接資料庫,再繼續往下。

如果你是使用Procedural style (程序型式),

可以使用以下方式,做資料庫操作

建立 testmysql-01.php如下 :

<?php 
// Include config file 
require_once "mysqlconnect-01.php"; 
$sql = "SELECT * FROM table_name"; 
$result = $conn->query($sql);

if ($result->num_rows > 0) { 
// output data of each row 
    while($row = $result->fetch_assoc()) {
    echo $row["field_name"];
    }
}
?>

以上 table_name、field_name 需要依照你的情況,自己設定正確。

參考資料

[範例 ~ 開始讀寫資料庫]

(1) 先寫個用來連接的程式檔 config.php

<?php 
$servername = '主機名稱'; 
$username ='使用者名稱'; 
$password = '使用者密碼'; 
$dbname = '資料庫名稱';
 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
die("連接失敗 : " . $conn->connect_error); 
?>

(2) 再寫個抓取表單資料的程式檔 data.php

======== data.php 從以下開始 ========

<?php 
// 把 config file 加進來 
require_once "config.php"; 
$sql = "SELECT * FROM 表單名稱"; 
$result = $conn->query($sql); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<title>網頁標題</title> 
</head> 
<?php 
if ($result->num_rows > 0) { 
$row = $result->fetch_assoc(); 
?> 
<body> 
<P><?php echo $row["欄位名稱"] ?></P>
</body> 
</html> 
<?php 
$conn->close(); 
?>

======== data.php 到以上結束 ========

(3) 再寫個抓取表單資料來列表的程式檔 list.php

======== list.php 從以下開始 ========

<?php 
// 把 config file 加進來 
require_once "config.php"; 
$sql = "SELECT * FROM 表單名稱"; 
$result = $conn->query($sql); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<title>網頁標題</title> 
</head> 
<body> 
<?php 
if ($result->num_rows > 0) { 
     while ($row = $result->fetch_assoc()) {  
           echo "<P>".$row["欄位名稱1"]."  ".$row["欄位名稱2"]."</P>"; 
      }
} else {echo "沒有資料 !"; }
 
$conn->close();
?> 
</body> 
</html> 

======== list.php 到以上結束 ========

(4) 再寫個加入資料的程式 add.php

======== add.php 從以下開始 ========

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<title>網頁標題</title> 
</head> 
<body> 
<form method="post" action=""> 
<P>&nbsp;</P>欄位名稱1 : <br><input type="text" name="欄位名稱1">
<P>&nbsp;</P>欄位名稱2 : <br><input type="text" name="欄位名稱2">
<P><input type="submit"></P> </form> 
<?php 
if (isset($_POST['欄位名稱1'])) { 
$a=$_POST['欄位名稱1']; 
$b=$_POST['欄位名稱2']; 
require_once "config.php"; 
$sql = "INSERT INTO 表單名稱 (欄位名稱1, 欄位名稱2) VALUES ('".$a."','".$b."')";
echo "<P>".$sql."</P>"; 
$result = $conn->query($sql); 
echo "<P>".mysqli_error($conn)."</P>"; 
?> 
</body></html>

======== add.php 到以上結束 ========


-----------------------
config.php

<?php 

$host = '主機名稱'; 
$dbuser ='使用者名稱'; 
$dbpassword = '使用者密碼'; 
$dbname = '資料庫名稱';

// Create connection 
$conn = new mysqli($host, $dbuser, $dbpassword, $dbname); 

// Check connection 
if ($conn->connect_error) { 
die("連接失敗 : " . $conn->connect_error); 
?>

testmysql-01.php

<?php 
// Include config file 
require_once "config.php"; 
$sql = "SELECT * FROM testdb"; 
$result = $conn->query($sql);

if ($result->num_rows > 0) { 
// output data of each row 
    while($row = $result->fetch_assoc()) {
    echo $row["testfield01"];
    echo "<br>".$row["testfield02"];
    }
}
?>

張貼留言

0 留言