php PDO寫法鏈接mysql;php
$db=new PDO("mysql:host=localhost;dbname=sql","root","root");html
PDO增刪查改mysql
事例sql
<?php header("content-type:text/html;charset=utf-8"); $dsn="mysql:dbname=test;host=localhost"; $db_user='root'; $db_pass='admin123'; try{ $pdo=new PDO($dsn,$db_user,$db_pass); }catch(PDOException $e){ echo '數據庫鏈接失敗'.$e->getMessage(); } //新增 $sql="insert into test (id,user) values (1,'phpthinking')"; $res=$pdo->exec($sql); echo '影響行數:'.$res; //修改 $sql="update test set user='phpthinking' where id=1"; $res=$pdo->exec($sql); echo '影響行數:'.$res; //查詢 $sql="select * from test"; $res=$pdo->query($sql); foreach($res as $row){ echo $row['user'].'<br/>'; } //刪除 $sql="delete from test where id=1"; $res=$pdo->exec($sql); echo '影響行數:'.$res; ?>
PDO語句說明數據庫
$pdo=new PDO("mysql:dbname=test;host=127.0.0.1;port=3306","root","php");數組
$pdo=new PDO("mysql:dbname=數據庫;host=127.0.0.1;port=3306","root","php",array(PDO::ATTR_PERSISTENT=>true));服務器
$pdo->setAttribute(PDO::ATTR_PERSISTENT,true);//設置數據庫鏈接爲持久鏈接函數
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//設置拋出錯誤fetch
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS,true);//設置當字符串爲空轉換爲SQL的NULL編碼
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);//表字段字符的大小寫轉換或原樣使用列信息
$pdo->query("SET NAMES utf8");//設置數據庫編碼
$pdo->query(sql語句);//返回PDOStatement對象,通常用於select
$pdo->exec(sql語句);//返回受影響行數,通常用於insert|update|delete
$sm=$pdo->query();
$sm->rowCount()//返回記錄數
$pdo=null;//釋放資源
while($data=$sm->fetch()){print_r($data);}//只會返回一條數據
$sm->setFetchMode(PDO::FETCH_ASSOC);//只返回關聯索引
$data=$sm->fetchAll();//返回全部數據
$sm=$pdo->prepare(sql語句);
$sm->execute();
$data=$sm->fetchColumn();//通常用來進行count統計
將列分發到變量
$sm->bindColumn(數字,變量);
$sm->bindColumn(字段名,變量);
while($data=$sm->fetch(PDO::FETCH_BOUND)){}
替換變量
$sm=$pdo->prepare(":佔位變量");
$sm->bindParam(":佔位變量",值,PDO::PARAM_INT);
$sm->bindParam(":佔位變量",值,PDO::PARAM_STR,12);
$sm->execute();
替換問號佔位符
$sm=$pdo->prepare("?");
$sm->bindValue(1,值,PDO::PARAM_INT);//第1個問號
$sm->bindValue(2,值,PDO::PARAM_STR,12);//第2個問號
$sm->execute();
方法
PDO::query()//處理一條SQL語句並返回一個PDOStatement對象
PDO::lastInsertId()//獲取插入到表中的最後一條數據的主鍵值
PDO::prepare()//負責準備執行的SQL語句
PDO::exec()//處理一條SQL語句並返回所影響的行數
PDO::beginTransaction//開始一個事務並標明回滾起始點
PDO::commit//提交一個事務並執行SQL語句
PDO::__construct//構造函數
PDO::errorCode//獲取錯誤碼
PDO::errorInfo//獲取錯誤信息
PDO::getAttribute//獲取一個數據庫鏈接對象的屬性
PDO::getAvailableDrivers//獲取有效的PDO驅動器名稱
PDO::inTransaction
PDO::quote//爲某個SQL語句中的字符串添加引號
PDO::rollBack//回滾一個事務
PDO::setAttribute//爲一個數據庫鏈接對象設定屬性
PDOStatement::bindColumn//將列分發到變量
PDOStatement::bindParam//替換變量
PDOStatement::bindValue//替換問號佔位符
PDOStatement::closeCursor//關閉光標
PDOStatement::columnCount//字段數
PDOStatement::debugDumpParams
PDOStatement::errorCode//獲取錯誤碼
PDOStatement::errorInfo//獲取錯誤信息
PDOStatement::execute//執行語句
PDOStatement::fetch//只會返回一條數據
PDOStatement::fetchAll//返回全部數據
PDOStatement::fetchColumn//通常用來進行count統計
PDOStatement::fetchObject
PDOStatement::getAttribute
PDOStatement::getColumnMeta
PDOStatement::nextRowset
PDOStatement::rowCount//記錄數
PDOStatement::setAttribute
PDOStatement::setFetchMode
常量
PDO::ATTR_AUTOCOMMIT//是否開啓自動提交功能true|false
PDO::ATTR_PREFETCH//設置應用程序提早獲取的數據大小[千字節爲單位]
PDO::ATTR_TIMEOUT//設置超時以前的等待時間[秒爲單位]
PDO::ATTR_SERVER_INFO//包含與數據庫特有的服務器信息
PDO::ATTR_SERVER_VERSION//包含與數據庫服務器版本號有關的信息
PDO::ATTR_CLIENT_VERSION//包含與數據庫客戶端版本號有關的信息
PDO::ATTR_CONNECTION_STATUS//設置超時以前的等待時間[秒爲單位]
PDO::CASE_LOWER//強制列名是小寫
PDO::CASE_UPPER//強制列名爲大寫
PDO::CASE_NATURAL//列名按照原始的方式
PDO::FETCH_ASSOC//關聯數組形式
PDO::FETCH_NUM//數字索引數組形式
PDO::FETCH_BOTH//二者數組形式都有
PDO::FETCH_OBJ//按照對象的形式
//註釋:
當異常被觸發時,一般會發生:在PHP5中添加了相似於其它語言的錯誤異常處理模塊。在 PHP代碼中所產生的異常可被 throw語句拋出並被 catch 語句捕獲。須要進行異常處理的代碼都必須放入 try 代碼塊內,以便捕獲可能存在的異常。每個 try 至少要有一個與之對應的 catch。
使用多個 catch 能夠捕獲不一樣的類所產生的異常,當 try 代碼塊再也不拋出異常或者找不到 catch 能匹配所拋出的異常時,PHP 代碼就會在跳轉到最後一個 catch 的後面繼續執行。固然,PHP 容許在 catch 代碼塊內再次拋出(throw)異常,當一個異常被拋出時,其後(譯者注:指拋出異常時所在的代碼塊)的代碼將不會繼續執行,而 PHP 就會嘗試查找第一個能與之匹配的 catch,若是一個異常沒有被捕獲,並且又沒用使用 set_exception_handler() 做相應的處理的話,那麼 PHP 將會產生一個嚴重的錯誤,而且輸出 Uncaught Exception ... (未捕獲異常)的提示信息.
<?php
詳細:
http://www.jb51.net/article/61316.htm
http://www.jb51.net/article/59692.htm
http://www.jb51.net/article/61317.htm