我正在编写一个带有两个参数的函数,第一个是用户的 id(默认为 %),第二个是应该检索哪些字段(默认为 *)。第一个参数工作正常,但由于某种原因,当我尝试使用星号作为准备好的语句的参数值时,我得到了奇怪的结果(如下所列)。为什么我不能在准备好的语句中使用星号但可以使用百分号?我的功能如下:
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
(
[*] => *
)
)