這篇文章主要介紹了PHP中的prepare()方法的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
php,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現在被很多的網站編程人員廣泛的運用。
每次發送查詢語句給MySQL服務時,都必須解析該查詢的語法,確保結構正確并能夠執行。這是這個過程中必要的步驟,但也確實帶來了一些開銷。做一次是必要的,但是如果反復地執行相同的查詢,批量插入多行時只改變列值,準備語句會在服務器上緩存查詢的語法和執行過程,而只在服務器和客戶端之間傳輸有變化的列值,以此來消除這些額外的開銷。
首先我們來看一下PDO::prepare
的語法:
public PDO::prepare ( string $statement , array $driver_options = array() ) : PDOStatement
$statement:必須是對目標數據庫服務器有效的 SQL 語句模板。
$driver_options:數組包含一個或多個 key=>value 鍵值對,為返回的 PDOStatement 對象設置屬性
返回值如果數據庫服務器完成準備了語句,返回PDOStatement 對象。如果數據庫服務器無法準備語句,PDO::prepare() 返回 false 或拋出PDOException (取決于 錯誤處理器)。
代碼實例:
1.連接數據庫
<?php $servername="localhost"; $username="root"; $password="root123456"; $dbname="my_database"; $pdo=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); echo "連接成功"."<br>"; $pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);
輸出:連接成功
2.使用問號參數來準備SQL語句
$sql ="select * from fate where `id`=?"; $statement=$pdo->query("select * from fate where `id`=3 "); var_dump($statement->fetch()); echo "<br>"; $stmt2 = $pdo->prepare($sql); $stmt2 ->execute(array(3)); var_dump($stmt2->fetch());
輸出:array(6) {["ID"]=>string(1) "3"0]=>string(1) "3"["NAME"]=>string(7) "luncher"[1]=>string(7) "luncher"["AGE"]=>string(2) "56"[2]=>string(2) "56"} array(6) {["ID"]=>string(1) "3"[0]=>string(1) "3"["NAME"]=>string(7) "luncher"[1]=>string(7) "luncher"["AGE"]=>string(2) "56"[2]=>string(2) "56"}
3.使用命名參數來準備SQL語句
$query = "insert into tp_user (id,name,gender)values(:id,:name ,:gender)"; //準備語句 $stmt1 = $pdo->prepare($query); // 執行查詢 $stmt1->execute(array('id'=> 1,':name' => '張三', ':gender' => '男')); //再次執行 $stmt1->execute(array('id'=> 2,':name' => '李四', ':gender' => '女')); echo "插入成功!","<br>";
輸出;插入成功!
感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP中的prepare()方法的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。