0
我在寫一個帶有兩個參數的函數,第一個是用戶的id(默認爲%),第二個是應檢索哪些字段(默認爲*)。第一個參數工作正常,但由於某種原因,當我嘗試使用星號作爲準備語句的參數值時,我得到了奇怪的結果(如下所示)。我有什麼理由不能在準備好的聲明中使用星號,但可以使用百分號?我的函數如下所示:在PDO準備語句中使用星號作爲值
public function getMembers($id = '%', $fields = '*') {
$sql = 'SELECT ?
FROM members
WHERE members.member_id LIKE ?;';
return $this->executeQuery($sql, array($fields, $id));
}
而這裏的executeQuery功能:
public function executeQuery($query, array $parameters = array(), $fetch_type = PDO::FETCH_ASSOC) {
$result = array();
$sth = $this->handle->prepare($query);
if($sth->execute($parameters)) {
while($row = $sth->fetch($fetch_type)) {
array_push($result, $row);
}
}
return $result;
}
最後的結果,如果我使用默認的星號:
Array
(
[0] => Array
(
[*] => *
)
)
啊哈,這很有道理。我想我必須想出一個不同的方法來允許用戶定製他們想要的功能。要麼或者只是轉儲所有的字段,並允許他們過濾出他們想要的數據。謝謝您的幫助。 – KylePlusPlus