mysql php pdo_php PDO mysql写法
php PDO寫法連接mysql;
寫法一:
$db="mysql:host=localhost;dbname=sql" ; //連接數(shù)據(jù),地址localhost;數(shù)據(jù)庫名稱sql;
$username="root"; //數(shù)據(jù)庫登錄賬號;
$password="root"; //數(shù)據(jù)庫登錄密碼;
try{
$pdo=new PDO($db,$username,$password); ? //連接數(shù)據(jù)庫賦值$pdo;
}catch(PDOException $e){
echo "PDO連接失敗".$e->getMessage();
}
寫法二:
$db=new PDO("mysql:host=localhost;dbname=sql","root","root"); ?//連接數(shù)據(jù),地址localhost;數(shù)據(jù)庫名稱sql;數(shù)據(jù)庫登錄賬號密碼; 連接賦值$db
PDO增刪查改
事例一:
$dbh = new PDO(‘mysql:host=localhost;dbname=access_control‘, ‘root‘, ‘‘);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->exec(‘set names utf8‘);
/*添加*/
//$sql = "INSERT INTO `user` SET `login`=:login AND `password`=:password";
$sql = "INSERT INTO `user` (`login` ,`password`)VALUES (:login, :password)";? $stmt = $dbh->prepare($sql);? $stmt->execute(array(‘:login‘=>‘kevin2‘,‘:password‘=>‘‘));
echo $dbh->lastinsertid();
/*修改*/
$sql = "UPDATE `user` SET `password`=:password WHERE `user_id`=:userId";
$stmt = $dbh->prepare($sql);
$stmt->execute(array(‘:userId‘=>‘7‘, ‘:password‘=>‘4607e782c4d86fd5364d7e4508bb10d9‘));
echo $stmt->rowCount();
/*刪除*/
$sql = "DELETE FROM `user` WHERE `login` LIKE ‘kevin_‘"; //kevin%
$stmt = $dbh->prepare($sql);
$stmt->execute();
echo $stmt->rowCount();
/*查詢*/
$login = ‘kevin%‘;
$sql = "SELECT * FROM `user` WHERE `login` LIKE :login";
$stmt = $dbh->prepare($sql);
$stmt->execute(array(‘:login‘=>$login));
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
print_r($row);
}
print_r( $stmt->fetchAll(PDO::FETCH_ASSOC));
?>
事例二:
?>
PDO語句說明
$pdo=new PDO("mysql:dbname=test;host=127.0.0.1;port=3306","root","php");
$pdo=new PDO("mysql:dbname=數(shù)據(jù)庫;host=127.0.0.1;port=3306","root","php",array(PDO::ATTR_PERSISTENT=>true));
$pdo->setAttribute(PDO::ATTR_PERSISTENT,true);//設置數(shù)據(jù)庫連接為持久連接
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//設置拋出錯誤
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS,true);//設置當字符串為空轉(zhuǎn)換為SQL的NULL
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);//表字段字符的大小寫轉(zhuǎn)換或原樣使用列信息
$pdo->query("SET NAMES utf8");//設置數(shù)據(jù)庫編碼
$pdo->query(sql語句);//返回PDOStatement對象,一般用于select
$pdo->exec(sql語句);//返回受影響行數(shù),一般用于insert|update|delete
$sm=$pdo->query();
$sm->rowCount()//返回記錄數(shù)
$pdo=null;//釋放資源
while($data=$sm->fetch()){print_r($data);}//只會返回一條數(shù)據(jù)
$sm->setFetchMode(PDO::FETCH_ASSOC);//只返回關(guān)聯(lián)索引
$data=$sm->fetchAll();//返回所有數(shù)據(jù)
$sm=$pdo->prepare(sql語句);
$sm->execute();
$data=$sm->fetchColumn();//一般用來進行count統(tǒng)計
將列分發(fā)到變量
$sm->bindColumn(數(shù)字,變量);
$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()//獲取插入到表中的最后一條數(shù)據(jù)的主鍵值
PDO::prepare()//負責準備執(zhí)行的SQL語句
PDO::exec()//處理一條SQL語句并返回所影響的行數(shù)
PDO::beginTransaction//開始一個事務并標明回滾起始點
PDO::commit//提交一個事務并執(zhí)行SQL語句
PDO::__construct//構(gòu)造函數(shù)
PDO::errorCode//獲取錯誤碼
PDO::errorInfo//獲取錯誤信息
PDO::getAttribute//獲取一個數(shù)據(jù)庫連接對象的屬性
PDO::getAvailableDrivers//獲取有效的PDO驅(qū)動器名稱
PDO::inTransaction
PDO::quote//為某個SQL語句中的字符串添加引號
PDO::rollBack//回滾一個事務
PDO::setAttribute//為一個數(shù)據(jù)庫連接對象設定屬性
PDOStatement::bindColumn//將列分發(fā)到變量
PDOStatement::bindParam//替換變量
PDOStatement::bindValue//替換問號占位符
PDOStatement::closeCursor//關(guān)閉光標
PDOStatement::columnCount//字段數(shù)
PDOStatement::debugDumpParams
PDOStatement::errorCode//獲取錯誤碼
PDOStatement::errorInfo//獲取錯誤信息
PDOStatement::execute//執(zhí)行語句
PDOStatement::fetch//只會返回一條數(shù)據(jù)
PDOStatement::fetchAll//返回所有數(shù)據(jù)
PDOStatement::fetchColumn//一般用來進行count統(tǒng)計
PDOStatement::fetchObject
PDOStatement::getAttribute
PDOStatement::getColumnMeta
PDOStatement::nextRowset
PDOStatement::rowCount//記錄數(shù)
PDOStatement::setAttribute
PDOStatement::setFetchMode
常量
PDO::ATTR_AUTOCOMMIT//是否開啟自動提交功能true|false
PDO::ATTR_PREFETCH//設置應用程序提前獲取的數(shù)據(jù)大小[千字節(jié)為單位]
PDO::ATTR_TIMEOUT//設置超時之前的等待時間[秒為單位]
PDO::ATTR_SERVER_INFO//包含與數(shù)據(jù)庫特有的服務器信息
PDO::ATTR_SERVER_VERSION//包含與數(shù)據(jù)庫服務器版本號有關(guān)的信息
PDO::ATTR_CLIENT_VERSION//包含與數(shù)據(jù)庫客戶端版本號有關(guān)的信息
PDO::ATTR_CONNECTION_STATUS//設置超時之前的等待時間[秒為單位]
PDO::CASE_LOWER//強制列名是小寫
PDO::CASE_UPPER//強制列名為大寫
PDO::CASE_NATURAL//列名按照原始的方式
PDO::FETCH_ASSOC//關(guān)聯(lián)數(shù)組形式
PDO::FETCH_NUM//數(shù)字索引數(shù)組形式
PDO::FETCH_BOTH//兩者數(shù)組形式都有
PDO::FETCH_OBJ//按照對象的形式
?>
//注釋:
當異常被觸發(fā)時,通常會發(fā)生:在PHP5中添加了類似于其它語言的錯誤異常處理模塊。在 PHP代碼中所產(chǎn)生的異常可被 throw語句拋出并被 catch 語句捕獲。需要進行異常處理的代碼都必須放入 try 代碼塊內(nèi),以便捕獲可能存在的異常。每一個 try 至少要有一個與之對應的 catch。
使用多個 catch 可以捕獲不同的類所產(chǎn)生的異常,當 try 代碼塊不再拋出異常或者找不到 catch 能匹配所拋出的異常時,PHP 代碼就會在跳轉(zhuǎn)到最后一個 catch 的后面繼續(xù)執(zhí)行。當然,PHP 允許在 catch 代碼塊內(nèi)再次拋出(throw)異常,當一個異常被拋出時,其后(譯者注:指拋出異常時所在的代碼塊)的代碼將不會繼續(xù)執(zhí)行,而 PHP 就會嘗試查找第一個能與之匹配的 catch,如果一個異常沒有被捕獲,而且又沒用使用 set_exception_handler() 作相應的處理的話,那么 PHP 將會產(chǎn)生一個嚴重的錯誤,并且輸出 Uncaught Exception ... (未捕獲異常)的提示信息.
詳細:
http://www.jb51.net/article/61316.htm
http://www.jb51.net/article/59692.htm
http://www.jb51.net/article/61317.htm
?>
總結(jié)
以上是生活随笔為你收集整理的mysql php pdo_php PDO mysql写法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络的ip分配,IP地址分配_网络
- 下一篇: rust腐蚀怎么单人游戏_腐蚀游戏怎么提