[英]PDO prepared statement not returning expected results
當$this->show
設置為saved-by-the-bell
時,准備好的查詢返回以下結果集:
season
------
1
2
3
4
當我執行以下代碼時:
$seasons = array( );
$query = $db->prepare(
"SELECT `season` " .
"FROM `tv` " .
"WHERE `show_url` = ':show' " .
"GROUP BY `season` " .
"ORDER BY `season` ASC;"
);
$query->bindParam( ':show', $this->show );
$query->execute( );
$query->setFetchMode( PDO::FETCH_OBJ );
while( $row = $query->fetch( ) )
{
$season = new stdClass;
$season->number = $row->season;
$season->title = "Season {$row->season}";
$season->url = $row->season;
$seasons[] = $season;
}
return $seasons;
$seasons
是一個空陣列,為什么?
$ db是一個擴展PDO的實例化對象。
我已經嘗試了各種調試方法,但是當我回顯rowCount時,它說0.我仍然是PDO的新手,但我似乎無法看到這里有什么問題。
提前致謝。
啊,我明白了。 我會把我的愚蠢放在這里,以防其他人發生這種情況。
顯然,在使用預准備語句時,您不需要在SQL代碼中將參數包裝在引號中。
因此,prepare語句應如下所示:
$query = $db->prepare(
"SELECT `season` " .
"FROM `tv` " .
"WHERE `show_url` = :show " .
"GROUP BY `season` " .
"ORDER BY `season` ASC;"
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.