我在這裏有點困惑。我有以下代碼:PHP PDO查詢不能使用變量?
class Users {
function count_matched_rows($needle, $haystack){
global $userdb;
$query = $userdb->prepare("SELECT COUNT(*) FROM `users` WHERE ? = ?");
$query->execute(array($haystack, $needle));
return $query->fetchColumn();
}
}
$users = new Users();
print_r($users->count_matched_rows("jeremyfifty9", "username"));
與爲1的預期值打印0,所以我改成了這樣:
class Users {
function count_matched_rows($needle, $haystack){
global $userdb;
$query = $userdb->prepare("SELECT COUNT(*) FROM `users` WHERE `username` = 'jeremyfifty9'");
$query->execute(array($haystack, $needle));
return $query->fetchColumn();
}
}
$users = new Users();
print_r($users->count_matched_rows("jeremyfifty9", "username"));
預期它打印1。有誰知道爲什麼第一個代碼打印0而第二個打印1?
(順便說一句 - 我試圖讓這個模擬mysql_num_rows
)
您不能使用佔位符/可變的變量名,只爲值。 – jeroen 2012-08-03 02:16:49
強制性的「不要使用'全局'(特別是在一個類中,但是,真的,從來沒有在任何地方使用它)註釋使$ userdb成爲一個私有成員,並通過構造函數傳遞它 – 2012-08-03 02:18:06
謝謝凱文。代碼)。@ jeroen,是否可以做我想做的事情? – jeremy 2012-08-03 02:23:44