說道pdo首先應該想到的問題:
1.什麼是pdo?
pdo類似於mysqli,其不同的是pdo能對不同資料庫的操作,方便使用。
2.為什麼要用pdo?
更換其他資料庫的時候不需要更改**
3.pdo的使用方法:
pdo是php5新加入的乙個重大功能,我們的資料庫伺服器為mysql,所有的程式**的資料庫操作全是一mysql()或者mysqli()函式來操作,當我們的資料庫 需要更換時比如換成,sql、server、postgresql、ms 等,我們不可能去修 改所有的程式**!所以就要用到pdo,pdo很好的幫我們解決了這個問題,使用pdo操作非常方便,只需要修改資料來源格 式,和載入相應的驅動檔案到php.ini即可;
用法步驟:
1:首先你需要開啟一項配置,開啟php.ini中的(php_pdo_mysql.dll);
找到extension_dir='';路徑就是你的擴充套件目錄
# pdo連線資料庫
$dbms = 'mysql'; # 資料庫型別
$host = 'localhost'; # 資料庫主機名
$dbname = 'db_name'; # 使用的資料庫
$user = '****'; # 資料庫連線使用者名稱
$pass = '****'; # 對應的密碼
$dsn = "$dbms:host=$host;dbname=$dbname";
# 初始化pdo得到物件(請注意引數);
$db = new pdo($dsn, $user, $pass, array(pdo::mysql_attr_init_command => "set names 'utf8';")); //初始化乙個pdo物件
$sql = "select money from bank where id = 1";
$result = $db->query($sql);
$result->setfetchmode(pdo::fetch_assoc);
$arr = $result->fetch();
注釋:
1、query()執行查詢語句,返回結果集物件;
2、用迴圈利用fetch()方法逐個的取出記錄,返回的是關聯陣列和索引陣列兩種陣列,和mysql_fetch_array()的返回結果一致
3、fetchall()方法可以一次取出結果集中所有的陣列,以二維陣列的形式返回,但仍然是關聯陣列和索引陣列兩種陣列
新增:
主要思路:
1)連線資料庫、資料庫的使用者名稱、資料庫的密碼
2)生成pdo物件
3)執行新增
在這裡博主總結出幾點:
1. 開啟事務start transaction,可以簡寫為 begin
2. 然後記錄之後需要執行的一組sql
3. 事務提交commit
4. 如果所有的sql都執行成功,則提交,將sql的執行結果持久化到資料表內。
5. 事務回滾rollback
6. 如果存在失敗的sql,則需要回滾,將sql的執行結果,退回到事務開始之時
7. 無論回滾還是提交,都會關閉事務!需要再次開啟,才能使用。
8. 還有一點需要注意,就是事務只針對當前連線。
事務的四大特點:(面試常見題)
原子性(atomicity):
事務是資料庫的邏輯工作單位,它對資料庫的修改要麼全部執行,要麼全部不執行。
一致性(consistemcy):
事務前後,資料庫的狀態都滿足所有的完整性約束。
隔離性(isolation):
併發執行的事務是隔離的,乙個不影響乙個。如果有兩個事務,執行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為
只有該事務在使用系統。這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有乙個請求用於同一資料。
通過設定資料庫的隔離級別,可以達到不同的隔離效果。
永續性(durability):
在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。
注:關於一致性可能有些人不太理解,ok,我再來舉個例子解釋一下
a向b轉賬,假設轉賬之前這兩個使用者的錢加起來總共是2000,那麼a向b轉賬之後,不管這兩個賬戶怎麼轉,a使用者的錢和b使用者的錢加起來的總額還是2000,這個就是事務的一致性。
mysql 事務中查詢 mysql之事務
我們為什麼要使用資料庫的事務呢?使用事務有什麼缺點呢?使用原因 保持資料的匹配和一致性。缺點 併發操作中過度使用事務影響效能,因為事務用到了鎖技術。我是李福春,今天我們來複習一下事務的特性。你可以收穫下圖中的知識點。下面我們發散一下。事務特性 原子性 要麼全部成功要麼全部失敗 一致性 保證事務的前後...
PHP中PDO的事務處理分析
事務處理具有四個特性 原子性 一致性 獨立性 永續性。並不是所有的資料庫都支援事務處理的,pdo 為能夠執行事務處理的資料庫提供事務支援。配置事務處理需注意 1 關閉 pdo 的自動提交 pdo setattribute pdo attr autocommit,false 2 開啟乙個事務需要的方法...
資料庫之事務及索引
學習問題 一次記錄了多個保留點,但是出錯多的話,要怎樣才能在同一事務中同時解決呢。淺嘗輒止哈哈 事務命令 start transaction 開啟事務 rollback 回滾事務,即撤銷指定的sql語句 只能回退insert delete update語句 回滾到上一次commit的位置 commi...