91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP實現連接MySQL數據庫的方式有哪些

發布時間:2020-05-06 15:30:53 來源:億速云 閱讀:214 作者:三月 欄目:編程語言

本文主要給大家介紹PHP實現連接MySQL數據庫的方式有哪些,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下PHP實現連接MySQL數據庫的方式有哪些吧。                                                         

PHP實現連接MySQL數據庫的方式有哪些

PHP與MySQL的連接有三種API接口,分別是:PHP的MySQL擴展 、PHP的mysqli擴展 、PHP數據對象(PDO) ,下面針對以上三種連接方式做下總結,以備在不同場景下選出最優方案。

PHP的MySQL擴展是設計開發允許php應用與MySQL數據庫交互的早期擴展。MySQL擴展提供了一個面向過程的接口,并且是針對MySQL4.1.3或者更早版本設計的。因此這個擴展雖然可以與MySQL4.1.3或更新的數據庫服務端進行交互,但并不支持后期MySQL服務端提供的一些特性。由于太古老,又不安全,所以已被后來的mysqli完全取代;

PHP的mysqli擴展,我們有時稱之為MySQL增強擴展,可以用于使用 MySQL4.1.3或更新版本中新的高級特性。其特點為:面向對象接口 、prepared語句支持、多語句執行支持、事務支持 、增強的調試能力、嵌入式服務支持 、預處理方式完全解決了sql注入的問題。不過其也有缺點,就是只支持mysql數據庫。如果你要是不操作其他的數據庫,這無疑是最好的選擇。

PDO是PHP Data Objects的縮寫,是PHP應用中的一個數據庫抽象層規范。PDO提供了一個統一的API接口可以使得你的PHP應用不去關心具體要連接的數據庫云服務器系統類型,也就是說,如果你使用PDO的API,可以在任何需要的時候無縫切換數據庫云服務器,比如從Oracle 到MySQL,僅僅需要修改很少的PHP代碼。其功能類似于JDBC、ODBC、DBI之類接口。同樣,其也解決了sql注入問題,有很好的安全性。不過他也有缺點,某些多語句執行查詢不支持(不過該情況很少)。

官文對于三者之間也做了列表性的比較:

PHP的mysqli擴展PDOPHP的mysql擴展
引入的PHP版本5.05.03.0之前
PHP5.x是否包含是  
MySQL開發狀態活躍在PHP5.3中活躍僅維護
在MySQL新項目中的建議使用程度建議 - 首選建議不建議
API的字符集支持
服務端prepare語句的支持情況
客戶端prepare語句的支持情況
存儲過程支持情況
多語句執行支持情況大多數
是否支持所有MySQL4.1以上功能大多數

從官方給出的這份結果上來看,優先推薦msqli,其次是PDO 。而“民間”給出的結果很多是傾向于使用PDO,因為其不擔有跨庫的優點,更有讀寫速度快的特點。

1、PHP與Mysql擴展(本擴展自 PHP 5.5.0 起已廢棄,并在將來會被移除),PHP原生的方式去連接數據庫,是面向過程的

<?php
$mysql_conf = array(
  'host'  => '127.0.0.1:3306', 
  'db'   => 'test', 
  'db_user' => 'root', 
  'db_pwd' => 'root', 
  );
$mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
if (!$mysql_conn) {
  die("could not connect to the database:\n" . mysql_error());//診斷連接錯誤
}
mysql_query("set names 'utf8'");//編碼轉化
$select_db = mysql_select_db($mysql_conf['db']);
if (!$select_db) {
  die("could not connect to the db:\n" . mysql_error());
}
$sql = "select * from user;";
$res = mysql_query($sql);
if (!$res) {
  die("could get the res:\n" . mysql_error());
}
while ($row = mysql_fetch_assoc($res)) {
  print_r($row);
}
mysql_close($mysql_conn);
?>

2、PHP與Mysqli擴展,面向過程、對象

<?php
$mysql_conf = array(
  'host'  => '127.0.0.1:3306', 
  'db'   => 'test', 
  'db_user' => 'root', 
  'db_pwd' => 'joshua317', 
  );
$mysqli = @new mysqli($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
if ($mysqli->connect_errno) {
  die("could not connect to the database:\n" . $mysqli->connect_error);//診斷連接錯誤
}
$mysqli->query("set names 'utf8';");//編碼轉化
$select_db = $mysqli->select_db($mysql_conf['db']);
if (!$select_db) {
  die("could not connect to the db:\n" . $mysqli->error);
}$sql = "select uid from user where name = 'joshua';";
$res = $mysqli->query($sql);
if (!$res) {
  die("sql error:\n" . $mysqli->error);
}
 while ($row = $res->fetch_assoc()) {
    var_dump($row);
  }
$res->free();
$mysqli->close();
?>

3、PHP與PDO擴展,面向過程、對象

<?php
$mysql_conf = array(
  'host'  => '127.0.0.1:3306', 
  'db'   => 'test', 
  'db_user' => 'root', 
  'db_pwd' => 'joshua317', 
  );
$pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);//創建一個pdo對象
$pdo->exec("set names 'utf8'");
$sql = "select * from user where name = ?";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(1, 'joshua', PDO::PARAM_STR);
$rs = $stmt->execute();
if ($rs) {
  // PDO::FETCH_ASSOC 關聯數組形式
  // PDO::FETCH_NUM 數字索引數組形式
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    var_dump($row);
  }
}
$pdo = null;//關閉連接
?>

看完以上關于PHP實現連接MySQL數據庫的方式有哪些,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松潘县| 安新县| 勐海县| 文水县| 舞钢市| 都昌县| 大丰市| 青河县| 沅陵县| 廉江市| 独山县| 抚州市| 类乌齐县| 贵港市| 胶州市| 廉江市| 昌图县| 礼泉县| 深泽县| 荆州市| 德格县| 尉犁县| 图木舒克市| 乌鲁木齐县| 安溪县| 江西省| 郧西县| 潜山县| 吉水县| 汾阳市| 文化| 从江县| 衡东县| 稷山县| 井陉县| 金沙县| 孝义市| 共和县| 衡南县| 南和县| 诸城市|