0

我正在尝试编写一个简单的方法来对一些数据库结果进行排序。我们一直在使用 PEAR DB,它是一个旧的 OO 数据对象类。

我需要动态设置我们排序的列:

$query = $db->prepare('SELECT * FROM ' . $this->table . ' WHERE ? IS NOT NULL');

出现问题是因为在执行语句时,我以常规引号而不是斜引号中的列名结束,因此在示例中,该列永远不会为 NULL。

4

1 回答 1

1

尝试这样的事情,它会将请求的列与已知良好列的列表相撞。

 $columns = array("id", "name", "zipcode");
 if (!in_array($requestedCol, $columns)){
     // either reset $requestedCol to a default or error
 }
 $query = $db->prepare('SELECT * FROM ' . $this->table . ' WHERE '.$requestedColumn.' IS NOT NULL');
于 2013-05-15T21:03:17.353 回答