php鏈接Mysql簡記

MySQL 是 PHP 操做 MySQL 數據庫最原始的 Extension。MySQLi 的 i 表明 Improvement ,提供了相對進階的功能,就 Extension 而言,自己也增長了安全性。而 PDO(PHP Data Object)則是提供了一個 Abstraction Layer 來操做數據庫php

使用原生 MySQL API

    MySQL API 大部分擴展自 PHP 5.5.0 起已廢棄,並在未來會被移除。應使用 MySQLi或 PDO_MySQL 擴展來替換之。原生 MySQL API裏$link都是能夠省略的,若是沒有填寫,默認使用上一次的鏈接。建議寫上。mysql

 

使用MySQLi類

一、MySQLi面向過程sql

    與原生 MySQL API基本用法是同樣的,只需將mysql替換成mysqli且把$link放在方法的第一個參數就好了。相比原生 MySQL API,面向過程化的MySQLi裏的$link是不能夠省略的,若是沒有填寫,會拋出一個警告。由上面代碼也能夠看出,面向過程化的MySQLi與原生 MySQL API基本一致。數據庫

      $result = mysqli_query($link, 'select * from user');安全

二、MySQLi面向對象服務器

    比較重要的是MySQLi類mysqli_result類,前者用於發送查詢,後者用於從結果集返回數據。oracle

    $result = $link->query('select * from user') or die($link->errno . ':' .$link->error);函數

 

MySQLi    面向過程與面向對象的區別:從上面的兩查詢代碼能夠看出,面向對象是經過鏈接 new 出的 $link對象,訪問其屬性、方法等經過->的形式進行。post

 

使用PDO

無論是使用原生的MySQL API,仍是MySQLi,都仍是有缺陷的。
一、不支持事務機制;
二、僅支持MySQL,不能使用其它數據庫。
三、不安全,可能有注入風險
四、不支持異常處理spa

PHP的PDO擴展巧妙的解決了這些問題。

PDO使用dsn鏈接,支持衆多類型的數據庫,如mysql,postgresql,oracle,mssql等。

PDO(php data object)擴展類庫爲php訪問數據庫定義了輕量級的、一致性的接口,它提供了一個數據庫訪問抽象層。這樣,不管你使用什麼數據庫,均可以經過一致的函數執行查詢和獲取數據。

PDO大大簡化了數據庫的操做並可以屏蔽不一樣數據庫之間的差別,使用pdo能夠很方便地進行跨數據庫程序的開發,以及不一樣數據庫間的移植,是未來php在數據庫處理方面的主要發展方向。

 

命令 描述
SELECT VERSION( ) 服務器版本信息
SELECT DATABASE( ) 當前數據庫名 (或者返回空)
SELECT USER( ) 當前用戶名
SHOW STATUS 服務器狀態
SHOW VARIABLES 服務器配置變量

 

參考:
一、PHP: MySQL - Manual
http://php.net/manual/zh/set.mysqlinfo.php
二、原生 MySQL API - Manual
http://php.net/manual/zh/book.mysql.php
三、Mysqli — MySQL加強版擴展 - Manual
http://php.net/manual/zh/book.mysqli.php
四、PHP: PDO - Manual
http://php.net/manual/zh/book.pdo.php

相關文章
相關標籤/搜索