php pdo 簡單使用 (一)

2021-07-02 03:48:20 字數 2463 閱讀 9144

簡介:

pdo擴充套件為php訪問資料庫定義了乙個輕量級的、一致性的介面,它提供了乙個資料訪問抽象層,這樣,無論使用什麼資料庫,都可以通過一致的函式執行查詢和獲取資料。

即提供了乙個資料庫訪問抽象層能使得我們通過一致的函式和寫法來操作不同資料庫,有利於日後對資料庫的遷移,當然也有安全方面的提公升。

對比:php 運算元據庫以mysql 為例常用的方法有 php_mysql , php_mysqli , pdo

1.php_mysql 和 php_mysqli 都是不可以移植的,只能應用於mysql 資料庫, 而pdo 是可以輕易移植的。

2.php_mysql 是我們初學php 學的運算元據庫的函式,但是其實他基本上很少使用了,其中最重要的一點就是容易造成安全問題。

存在sql注入,於是php 提供了函式mysql_real_escape_string 如果存在很多的變數每乙個都要經過 mysql_real_escape_string

反而變的很麻煩。

3.pdo 支援預處理,預處理功能可以有效的避免sql注入,並提高效率。

4.php_mysqli 和 pdo 都支援物件導向。

5.pdo 長連線方式效能上優於php_mysqli (參考網上資料)

php_mysql 方式優勢已經不大了,php_mysqli 最致命的就是不能移植到其它資料庫,除非你很確定不會更換資料庫。顯然 pdo方式連線資料庫將會是一種趨勢。

pdo簡單運算元據庫:

首先php 要啟用php-pdo 相關擴充套件

<?php

$dbtype = 'mysql';

$dbuser = 'root';

$dbpass = 'simael';

$dbhost = 'localhost';

$dbname = 'pdotest';

$dsn="$dbtype:host=$dbhost;dbname=$dbname";

trycatch(pdoexception $exception)

插入 資料

<?php

//$pdo->query('set names utf8');

$sql = "insert into la_comments set nick_name='formpdo',email='[email protected]',comment='中文comment',page_id='11',created_at=now(),updated_at=now()";

$res1 = $pdo->exec($sql);

var_dump($res1);

此時去資料庫看到中文 可能是亂碼,是因為編碼問題各種錯亂的原因

新增**

$pdo->query('set names utf8');
資料儲存仍存在錯誤,是因為有可能你的header 是gbk 編碼

網上總結的 編碼需要注意的問題如下:

一、服務端程式宣告編碼,比如header("content-type: text/html; charset=utf-8");

二、客戶端宣告編碼,比如

三、資料庫編碼、表以及欄位的編碼

四、檔案本身編碼屬性

五、連線資料庫時請宣告編碼,比如$pdo->query('set names utf8');

只要上述都一致了編碼問題一般都會解決的。

完整示例**:(檔案本身也應該使用utf8 編碼)

<?php

header("content-type: text/html; charset=utf-8");

$dbtype = 'mysql';

$dbuser = 'root';

$dbpass = 'simael';

$dbhost = 'localhost';

$dbname = 'pdotest';

$dsn="$dbtype:host=$dbhost;dbname=$dbname";

trycatch(pdoexception $exception)

$pdo->query('set names utf8');

$sql = "insert into la_comments set nick_name='formpdo',email='[email protected]',comment='中文comment',page_id='11',created_at=now(),updated_at=now()";

$res1 = $pdo->exec($sql);

var_dump($res1);

$sql = "select * from la_comments";

$res2 = $pdo->query($sql);

while($row = $res2->fetch())

$pdo = null;

?>

PHP PDO 簡單教程

大約 80 的 web 應用程式由 php 提供支援。類似地,sql 也是如此。php 5.5 版本之前,我們有用於訪問 mysql 資料庫的 mysql 命令,但由於安全性不足,它們最終被棄用。棄用這件事是發生在 2013 年的 php 5.5 上,我寫這篇文章的時間是 2018 年,php 版本...

PHP PDO簡單操作

pdo php data object,php資料物件 是一種純物件導向的操作風格,在新版的php中,php封裝了一套pdo擴充套件庫,專門用來操作不同型別的資料庫!作用 由於資料庫的差異性,各個資料庫的呼叫不是完全相同的,同樣的程式如果使用不同的資料庫存放資料時,需要對程式的資料處理部分進行改動,...

PHP PDO 一 常用方法

示例 利用變數儲存資料來實現資料庫初始化 dbms mysql 資料庫型別 host localhost 資料庫主機名 port 3306 資料庫埠 dbname test 使用的資料庫 username root 資料庫連線使用者名稱 password 對應的密碼 dsn dbms host ho...