我閱讀了PDO,並在StackOverFlow上搜索了關於pdo並準備語句。我想知道什麼是好處或使用準備聲明。例如:PHP PDO準備查詢
$sql = 'SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
VS
$sql = "SELECT name, colour, calories FROM fruit WHERE calories < $calories AND colour = $colour";
$result = $connection->query($query);
$row = $result->fetch(PDO::FETCH_ASSOC);
兩個查詢將返回相同的結果,那麼爲什麼使用做準備,對我來說它看起來會是比較慢,因爲你必須執行額外的步驟。
感謝
你的第二個例子實際上並不工作 - 你沒有用值替換查詢中的參數! –
@FrancisAvila,好吧..你可以**注入**正確的值,但是,是的,默認情況下它不會工作。 –
在OP的早期版本中,'$ calories'只是':calories'。所以是的,我的評論不再適用。 –