php mysql 替换 pdo,php操作MySQL数据库之PDO方式
這篇文章主要介紹了關(guān)于php操作MySQL數(shù)據(jù)庫之PDO方式 ,有著一定的參考價值,現(xiàn)在分享給大家,有需要的朋友可以參考一下基本使用
1)連接數(shù)據(jù)庫$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);
2)執(zhí)行SQL語句$pdo -> query() 針對返回有結(jié)果的操作 適用于SELECT
$pdo -> exec() 針對沒有返回結(jié)果的操作 適用于增刪改
3)獲取結(jié)果集(查詢操作專有)$stmt -> fetch($mode) 獲取一條數(shù)據(jù)
$stmt -> fetchAll($mode) 獲取所有數(shù)據(jù)
mode可選擇 PDO::FETCH_ASSOC,結(jié)果變成關(guān)聯(lián)數(shù)組。
實例<?php
// PDO操作數(shù)據(jù)庫例子(查詢)
header("content-type:text/html;charset=utf-8");
// 連接數(shù)據(jù)庫
$dsn = "mysql:host=localhost; dbname=test";
$pdo = new PDO($dsn,'root','123456789');
/*********** 執(zhí)行SQL語句 *************/
// 設(shè)置字符集
$pdo -> exec("set names utf8");
$sql = "SELECT * FROM users";
$stmt = $pdo -> query($sql);
// 獲取結(jié)果集
$data = $stmt -> fetchAll(PDO::FETCH_ASSOC);
var_dump($data);事務(wù)控制
1)開啟事務(wù)$pdo -> beginTransaction()
2)事務(wù)回滾$pdo -> rollback()
3)事務(wù)提交$pdo -> commit()
4)自動提交$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)
實例<?php
header("content-type:text/html;charset=utf-8");
// 連接數(shù)據(jù)庫
$dsn = "mysql:host=localhost; dbname=test";
$pdo = new PDO($dsn,'root','123456789');
// 執(zhí)行SQL語句
// 設(shè)置字符集
$pdo -> exec("set names utf8");
// 開啟事務(wù)
$pdo -> beginTransaction();
// SQL語句
$sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1 ";
$r1 = $pdo -> exec($sql1);
$sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 12 ";
$r2 = $pdo -> exec($sql2);
// 做判斷
if($r1 > 0 && $r2 > 0){
$pdo -> commit();
echo '操作成功';
}else{
$pdo -> rollback();
echo '操作失敗';
}
$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1);預(yù)處理
1)$sql = “???”
SQL語句的VALUE里面的參數(shù),使用問號代替。
2)創(chuàng)建預(yù)編譯對象$pdo -> prepare($sql)
3)參數(shù)賦值$stmt -> bindParam(參數(shù)位置 | 參數(shù)偽名, 變量名(需要有值))
$stmt -> bindValue(參數(shù)參數(shù)位置 | 參數(shù)偽名, 變量名(需要有值)| 具體的值)
$stmt -> bindParam詳解:$sql = "UPDATE users SET `money`=100 WHERE id = :num ";
// 注意,這里必須先給$num賦值
$num = 3;
$stmt -> bindParam(":num",$num);
另一種形式(占位符變成問號)
$sql = "UPDATE users SET `money`=100 WHERE id = ? ";
// 注意,這里必須先給$num賦值
$num = 3;
$stmt -> bindParam(":num",$num);
$stmt -> bindValue詳解
在使用bindValue綁定變量后,即使在執(zhí)行execute之前改變了該變量的值,那么結(jié)果也不會變。
詳細請看這里這里寫鏈接內(nèi)容
4)執(zhí)行代碼$stmt -> execute()
5)獲取結(jié)果(查詢操作專有)$stmt -> fetch($mode) 獲取一個結(jié)果
$stmt -> fetchAll($mode) 獲取所有結(jié)果
mode可選擇 PDO::FETCH_ASSOC,結(jié)果變成關(guān)聯(lián)數(shù)組。
實例<?php
// MySQLi預(yù)處理控制例子(查詢)
header("content-type:text/html;charset=utf-8");
// 連接數(shù)據(jù)庫
$dsn = "mysql:host=localhost; dbname=test";
$pdo = new PDO($dsn,'root','123456789');
// 設(shè)置字符集
$pdo -> exec("set names utf8");
// SQL語句
$sql = "SELECT * FROM users WHERE id > :num ";
// 創(chuàng)建預(yù)編譯對象
$stmt = $pdo -> prepare($sql);
// 參數(shù)綁定
$num = 3;
$stmt -> bindParam(":num",$num);
// 執(zhí)行SQL語句
$stmt -> execute();
// 獲取結(jié)果集
$data = $stmt -> fetchAll(PDO::FETCH_ASSOC);
var_dump($data);
相關(guān)推薦:
總結(jié)
以上是生活随笔為你收集整理的php mysql 替换 pdo,php操作MySQL数据库之PDO方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 俄罗斯贝加尔湖水域发生8.3级地震:中国
- 下一篇: 七种开锁方式!小米智能门锁M20图赏