婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP連接MySQL數據庫三種實現方法

PHP連接MySQL數據庫三種實現方法

熱門標簽:黔江400電話如何辦理 400電話鄭州申請 電銷機器人便宜的有嗎 gps 地圖標注軟件 地圖標注視頻廣告入駐 中原區電話機器人價格 OMG地圖標注app 招標自動語音外呼系統 ai電話機器人加盟代理

引言

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與Mysql擴展(本擴展自 PHP 5.5.0 起已廢棄,并在將來會被移除),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);

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();
?>

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

?php
$mysql_conf = array(
  'host'  => '127.0.0.1:3306', 
  'db'   => 'test', 
  'db_user' => 'root', 
  'db_pwd' => 'joshua317', 
  );
try {
  $pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);//創建一個pdo對象
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  // 設置sql語句查詢如果出現問題 就會拋出異常
  //set_exception_handler("cus_exception_handler");
} catch (PDOException $e) {
  die("connect error:".$e->getMessage());
}
$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);
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Android和PHP MYSQL交互開發實例
  • Mac M1安裝mnmp(Mac+Nginx+MySQL+PHP)開發環境
  • PHP加MySQL消息隊列深入理解
  • PHP+Mysql分布式事務與解決方案深入理解
  • 深入理解PHP+Mysql分布式事務與解決方案
  • Aliyun Linux 編譯安裝 php7.3 tengine2.3.2 mysql8.0 redis5的過程詳解
  • php7連接MySQL實現簡易查詢程序的方法
  • PHP之mysql位運算案例講解

標簽:哈密 日照 池州 濟源 孝感 阿里 北京 那曲

巨人網絡通訊聲明:本文標題《PHP連接MySQL數據庫三種實現方法》,本文關鍵詞  PHP,連接,MySQL,數據庫,三種,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP連接MySQL數據庫三種實現方法》相關的同類信息!
  • 本頁收集關于PHP連接MySQL數據庫三種實現方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 清水县| 江山市| 平罗县| 辽阳市| 衡水市| 上林县| 全南县| 西丰县| 青河县| 印江| 辛集市| 丰县| 池州市| 资中县| 皮山县| 泰和县| 郯城县| 游戏| 哈巴河县| 闻喜县| 嵊泗县| 黄冈市| 云和县| 武平县| 鄱阳县| 仙桃市| 栾川县| 五指山市| 信阳市| 诸暨市| 延安市| 灵丘县| 喀什市| 黔江区| 霍城县| 佛教| 淮南市| 浦江县| 建昌县| 资溪县| 开封县|