教你如何用php pdo連線資料庫

安全劍客發表於2020-02-05
這篇文章主要介紹了php pdo連線資料庫操作,結合例項形式分析了PHP使用pdo連線資料庫並執行事務相關操作技巧,需要的朋友可以參考下

pdo連線資料庫的有點是能實現不同資料庫之間的轉換,而且有事務功能的回滾,更有pdo::prepare();pdo:::execute()函式的預處理查詢,所以我個人認為pdo的功能還是比較強大的,所有這篇日誌只為我自己而寫,希望看到這篇日誌的兄弟們能對你們有所幫助。

要用php連線資料庫首先要要例項化pdo的類,並且要有資料來源,伺服器賬號,伺服器密碼

資料來源是資料庫型別,伺服器名稱,資料庫名稱的一個集合。

query("set names gbk");//設定從資料庫裡面傳遞過來的資料的編碼格式
?>

事務介紹:事務介紹我就透過我自己的理解來講解一遍吧,就是先要關閉資料庫的自動提交功能(什麼是自動提交功能?就是當我們寫完一個sql語句後,按Enter鍵執行不起,而要經過特殊的程式碼處理才能提交上去,後面我會介紹的)

然後寫出你要執行的sql語句並將返回的結果賦給兩個不同的變數,之後提交,如果在執行的時候其中1個或多個發生了錯誤,就進行事務回滾,即使迴歸初始狀態(也就是前面在事務處理程式碼中的插入或改變或刪除或查詢的語句全部作廢),還有一個優點是不會因為進入其他網頁,或執行其他sql語句而影響到事務處理的程式

//以下是事務回滾的程式碼簡介
query("set names gbk");//設定從資料庫裡面傳遞過來的資料的編碼格式
$pdo->begintransaction();//在這裡關閉mysql的自動提交功能
$a=$pdo->query("insert into tongxue values('130042106','譚勇','男');
$b=$pdo->query("insert into tongxue values('130042100','豬八戒','男')");
if($a==true && $b==true){
$pdo->commit();//提交事務
} else{
$pdo->rollback();//事務回滾
}
?>

用mysql_num_rows()函式能數出資料庫返回結果集的行數,以此來判斷該使用者輸入的使用者名稱和密碼是否正確,那麼在pdo中我們如何實現這個功能呢?

在pdo中有一個函式pdo::fetchall(),他的作用是將從資料庫返回的一個結果集全部賦給獲取它的值,之後再用count()函式數出行數具體事例程式碼如下

query("set names gbk");//設定從資料庫裡面傳遞過來的資料的編碼格式
$sql="select * from tongxue where id='130042106'";
$shuju=pdo->prepare($sql);//這就是我們所說的預處理 
$shuju->execute();//執行預處理的結果;
$jg=$shuju->fetchall(PDO::FETCH_ASSOC);//將返回的結果集以陣列的方式全部返回給變數$jg
$hangshu=count($jg);//數出結果集的行數
if($hangshu>0){
echo '查詢出來是有這個人的';
} else{
echo '查詢出來是沒有這個人的';
}
?>

當我們的頁面執行的sql語句較多時,可以用pdo當中的預處理,來減緩伺服器的壓力,這對於那些要做大型網站的專案來說是一個不錯的選擇,因為大型網站一天的瀏覽量是幾萬或十幾萬的.
下面我們來看看pdo的預處理

query("set names gbk");//設定從資料庫裡面傳遞過來的資料的編碼格式
$sql="insert into tongxue values('130042100','老師','男')";//我們要執行的sql語句
$shuju=$pdo->prepare($sql); //預處理
$shuju->execute();//執行預處理的sql語句
if($shuju){
echo '執行成功';
} else{
echo '執行失敗';
}
?>

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2674526/,如需轉載,請註明出處,否則將追究法律責任。

相關文章