大家按照自己的需求,可以參考一下。我本人比較鐘愛PDO,可能是因為一直在用,但是據了解目前最推薦使用MySQLi。
第一種 mysql
最簡單的方式-mysql(面向過程)
<?php
$con = mysql_connect("數據庫連接地址","數據庫用戶名","數據庫管理密碼");
$select_db = mysql_select_db('數據庫名稱');
if (!$select_db) {
die("could not connect to the db: " . mysql_error());
}
//查詢代碼
$sql = "select * from table";
$res = mysql_query($sql);
if (!$res) {
die("could get the res: " . mysql_error());
}
while ($row = mysql_fetch_assoc($res)) {
print_r($row);
}
//關閉MySQL數據庫連接
mysql_close($con);
?>
第二種 mysqli
新的方式-mysqli(面向過程)
<?php
$mysql_server_name = '數據庫連接地址';
$mysql_username = '數據庫用戶名';
$mysql_password = '數據庫管理密碼';
$mysql_database = '數據庫名稱';
$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); //連接數據庫
//連接數據庫錯誤提示
if (mysqli_connect_errno($conn)) { die("連接 MySQL 失敗: " . mysqli_connect_error()); }
mysqli_query($conn,"set names utf8"); //數據庫編碼格式
// mysqli_set_charset($conn,"utf8");//設置默認客戶端字符集。
// mysqli_select_db($conn,$mysql_database); //更改連接的默認數據庫
//查詢代碼
$sql = “select * from table”;
$query = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($query)){
echo $row['title'];
}
// 釋放結果集+關閉MySQL數據庫連接
mysqli_free_result($result);
mysqli_close($conn);
?>
常用方式-mysqli(面向對象)
<?php
//連接數據庫方式1(比較看好方式1)
$conn = new mysqli('數據庫連接地址', '數據庫用戶名', '數據庫管理密碼', '數據庫名稱');
//連接數據庫方式2
// $conn = new mysqli();
// $conn -> connect('數據庫連接地址', '數據庫用戶名', '數據庫管理密碼', '數據庫名稱');
if ($conn -> connect_errno) {
printf("Connect failed: %s ", $conn->connect_error);
exit();
}
//查詢代碼
$sql = “select * from table”;
$query = $conn->query($sql);
while($row = $query->fetch_array()){
echo $row['title'];
}
//釋放結果集+關閉MySQL連接
$query1 -> free_result();
$conn -> close();
?>
第三種 PDO
PDO連接MySQL數據庫
<?php
$db = new PDO('mysql:host=數據庫連接地址;dbname=數據庫名稱', '數據庫用戶名', '數據庫管理密碼');
try {
foreach ($db->query('select * from table') as $row){
print_r($row);
}
$db = null; //關閉數據庫
} catch (PDOException $e) {
echo $e->getMessage();
}
?>
總結-關閉mysql數據庫的連接方法
//MySQL - 面向過程
mysql_close($conn);
//MySQLi - 面向過程
mysqli_close($conn);
//MySQLi - 面向對象
$conn->close();
//PDO
$conn = null;
三種鏈接方式特性及對比(在網上看到的,覺得還不錯,希望可以有幫助)
php與mysql的連接有三種API接口,分別是:PHP的MySQL擴展 、PHP的mysqli擴展 、PHP數據對象(PDO) ,下面針對以上三種連接方式做下總結,以備在不同場景下選出最優方案。
mysql
PHP的MySQL擴展是設計開發允許PHP應用與MySQL交互的早期擴展。mysql擴展提供了一個面向過程 的接口,并且是針對MySQL4.1.3或更早版本設計的。因此,這個擴展雖然可以與MySQL4.1.3或更新的服務端 進行交互,但并不支持后期MySQL服務端提供的一些特性。由于太過古老,又不安全,所以已被后來的mysqli完全取代。
mysqli
PHP的mysqli擴展,我們有時稱之為MySQL增強擴展,可以用于使用 MySQL4.1.3或更新版本中新的高級特性。其特點為:面向對象接口 、prepared語句支持、多語句執行支持、事務支持 、增強的調試能力、嵌入式服務支持 、預處理方式完全解決了的問題。不過其也有缺點, 就是只支持mysql數據庫。如果你要是不操作其他的數據庫,這無疑是最好的選擇。
PDO
PDO是PHP Data Objects的縮寫,其是PHP應用中的一個數據庫抽象層規范。PDO提供了一個統一的API接口可以使得你的PHP應用不去關心具體要 連接的數據庫服務器系統類型。也就是說,如果你使用PDO的API,可以在任何需要的時候無縫切換數據庫服務器,比如從oracle 到MySQL,僅僅需要修改很少的PHP代碼。其功能類似于JDBC、ODBC、DBI之類接口。同樣,其也解決了sql注入問題,有很好的安全性。不過他也有缺點,某些多語句執行查詢不支持(不過該情況很少)。
官文對于三者之間也做了列表性的比較:
從官方給出的這份結果上來看,優先推薦msqli,其次是pdo 。而“民間”給出的結果很多是傾向于使用PDO,因為其不擔有跨庫的優點,更有讀寫速度快的特點。