我正在尝试编写一个简单的方法来对一些数据库结果进行排序。我们一直在使用 PEAR DB,它是一个旧的 OO 数据对象类。
我需要动态设置我们排序的列:
$query = $db->prepare('SELECT * FROM ' . $this->table . ' WHERE ? IS NOT NULL');
出现问题是因为在执行语句时,我以常规引号而不是斜引号中的列名结束,因此在示例中,该列永远不会为 NULL。
我正在尝试编写一个简单的方法来对一些数据库结果进行排序。我们一直在使用 PEAR DB,它是一个旧的 OO 数据对象类。
我需要动态设置我们排序的列:
$query = $db->prepare('SELECT * FROM ' . $this->table . ' WHERE ? IS NOT NULL');
出现问题是因为在执行语句时,我以常规引号而不是斜引号中的列名结束,因此在示例中,该列永远不会为 NULL。
尝试这样的事情,它会将请求的列与已知良好列的列表相撞。
$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');