PDO 資料訪問抽象層

2022-03-30 17:39:41 字數 2083 閱讀 5464

1.操作其它資料庫

(1)造物件

$dsn = "mysql:dbname=test3;host=localhost";  //資料來源:兩個引數:資料庫驅動,鏈結資料庫

$pdo = new pdo($dsn,"root","123");  //資料來源,資料庫名,密碼
(2)寫sql語句

1.  $sql = "select * from productor";  //查詢這個表中的所有資料

2. $sql = " insert into productor values('p006','隨便')"; //增刪改語句

(3)執行語句:這裡就和mysqli()的不同之處了

1. $a = $pdo->query($sql);  //執行查詢語句:用query();

//輸出的是關聯陣列:fetch是輸出一條資料, fetch_all是輸出所有的資料;pdo::fetch_assoc也有幾個常用的:both是關聯和索引陣列都有,assoc第關聯陣列,num是索引陣列

2. $a = $pdo->exec($sql);   //執行其他語句:用exec();

這樣就是已經新增進資料庫了     :

2.事務功能

事務:能夠控制語句同時成功同時失敗,失敗時可以回滾

(1)造物件(上面已有)

(2)設定異常模式

$pdo->setattribute(pdo::attr_errmode,pdo::errmode_exception); //直接拿過來用
(3)開始寫事務:語句一起執行,其中只要有一條語句是錯誤的,就回滾到最開始,並且沒有真正執行寫入資料庫中

try

catch(exception $e)

3.防止sql注入攻擊

(1)?佔位符:陣列必須是索引陣列

/sql語句裡面需要加佔位符 ?

$sql = "select * from nation where code=?";

//$sql = "insert into nation values(?,?)";

//準備執行,返回pdostatement物件

$st = $pdo->prepare($sql);

//1.呼叫繫結引數的方法來繫結引數:繫結的引數必須定義

//$st->bindparam(1,$code); //前兩引數必須寫:佔位符位置,繫結的引數

//$st->bindparam(2,$name);

//2.索引陣列

$attr = array("",""); //$code,$name

//執行方法

$st->execute($attr);

(2)字串方式:陣列必須是關聯陣列

//佔位符是字串

$sql = "insert into nation values(:code,:name)";

//準備執行

$st = $pdo->prepare($sql);

//1.呼叫繫結引數引數

//$st->bindparam(":code",$code,pdo::param_str); //前三個引數必須要:字串,定義的繫結,型別

//$st->bindparam(":name",$name,pdo::param_str);

//$code = "n007";

//$name = "測試3";

//2.關聯陣列

$attr = array("code"=>"n008","name"=>"測試4");

$st->execute($attr);

PDO資料訪問抽象層

pdo兩大功能 一 事務功能 pdo的事務功能主要控制好幾條sql語句同時成功或者同時失敗 當其中一條sql語句有錯誤時,同時好幾條一起失敗 失敗時可以回滾操作 1 造物件 dsn mysql dbname crud host localhost pdo new pdo dsn,root 123 2...

PDO資料訪問抽象層

pdo比mysqli功能強大 pdo可以訪問mysql及其它資料庫 pdo的簡單實用 一 造物件 dsn mysql dbname crud host localhost pdo new pdo dsn,root 123 資料來源,資料庫使用者名稱,密碼 二 寫sql語句 sql select fr...

PDO 資料訪問抽象層

一.功能 1.可以訪問其它資料庫 2.具有事務功能 3.帶有預處理語句功能 防止sql注入攻擊 二.方法 1.造pdo物件 dsn mysql dbname mydb host localhost pdo new pdo dsn,root 123 2.寫sql語句 sql select from n...