首頁  >  文章  >  後端開發  >  mysql PDO::prepare用法詳解

mysql PDO::prepare用法詳解

巴扎黑
巴扎黑原創
2017-05-24 17:37:013569瀏覽

PDO::prepare — 準備要執行的SQL語句並傳回一個PDOStatement 物件(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

說明

說明

語法

public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )

為PDOStatement::execute() 方法準備要執行的SQL語句,SQL語句可以包含零個或多個命名(:name)或問號(?)參數標記,參數在SQL執行時會被取代。

你不能在 SQL 語句中同時包含命名(:name)或問號(?)參數標記,只能選擇其中一種風格。

預處理 SQL 語句中的參數在使用PDOStatement::execute()方法時會傳遞真實的參數。

參數

statement:合法的SQL語句。

driver_options:此陣列包含一個或多個key=>value 對來設定PDOStatement 物件的屬性, 最常使用到是將PDO::ATTR_CURSOR值設為PDO::CURSOR_SCROLL來要求一個可捲動遊標。

傳回值

如果成功,PDO::prepare()傳回PDOStatement對象,如果失敗回傳 FALSE 或拋出例外 PDOException 。

實例

使用命名(:name)參數來準備SQL語句

<?php
/* 通过数组值向预处理语句传递值 */
$sql = &#39;SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour&#39;;
    $sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
    $sth->execute(array(&#39;:calories&#39; => 150, &#39;:colour&#39; => &#39;red&#39;));
    $red = $sth->fetchAll();
    $sth->execute(array(&#39;:calories&#39; => 175, &#39;:colour&#39; => &#39;yellow&#39;));
    $yellow = $sth->fetchAll();
    ?>
###使用問號(?)參數來準備SQL語句###
<?php
/* 通过数组值向预处理语句传递值 */
$sth = $dbh->prepare(&#39;SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?&#39;);$sth->execute(array(150, &#39;red&#39;));
    $red = $sth->fetchAll();
    $sth->execute(array(175, &#39;yellow&#39;));
    $yellow = $sth->fetchAll();
    ?>

以上是mysql PDO::prepare用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn