在PHP中为foreach提供的参数无效,

在PHP中为foreach提供的参数无效,,php,pdo,invalidargumentexception,Php,Pdo,Invalidargumentexception,我正在MySQL数据库上运行一个PDO查询,我得到一个错误,说为foreach提供的参数无效。在前端,我只向$questionTable传递一个字符串,并为$questionID传递一个整数 我做错了什么 $query = $this->dbConnection->query("SELECT * FROM ('$questionTable') WHERE id = ('$questionID')"); foreach ($query as $row) { echo $row; };

我正在MySQL数据库上运行一个PDO查询,我得到一个错误,说为foreach提供的参数无效。在前端,我只向$questionTable传递一个字符串,并为$questionID传递一个整数

我做错了什么

$query = $this->dbConnection->query("SELECT * FROM ('$questionTable') WHERE id = ('$questionID')");
foreach ($query as $row) {
 echo $row;
};

是因为我们不应该将“”放入查询吗? 我是说:
$query=$this->dbConnection->query(“从($questionTable)中选择*,其中id=($questionID)”

查询的值是多少?使用的api是什么?PDO、mysqli还是其他?您需要获取查询的结果集来迭代循环中的行。在将问题发布到SA之前,您需要做一些研究。我猜有很多教程可以告诉您缺少什么。使用了PDO查询。什么教程?这似乎不是一个好主意,如果你想阅读官方的PHP PDO手册,这里有足够多的例子:从前端传递这些值并将它们直接注入到查询中是一个非常糟糕的主意。您应该为表名和列名使用白名单,为值使用准备好的语句?真奇怪,括号没用。他们只是对这个问题表示不满。那我该怎么做呢?@konyv12:我上次写这样的东西是没有括号的。比如SELECT*FROM$tablename,其中id=$id,但很抱歉,我不确定我使用的和您的案例之间是否有区别。