PDO - 选择来自开机自检/参数的列


PDO - Selecting Columns coming from POST/Parameter

是否可以使用这个函数:

function getProjectData($uid, $what) {
    $sql = "SELECT ? FROM projects WHERE fid = ?";
    $stmt = $this->db->prepare($sql);
    $stmt->execute(array($uid,$what);
    return $stmt->fetch(PDO::FETCH_LAZY);
}  
"

uid"是用户ID,"what"将是我想要的列,例如"title",因此查询将是:

SELECT title FROM projects WHERE fid = 1  

这可能吗?

PDO中的表和列名称不能替换:

看看这里:PHP PDO 语句可以接受表或列名作为参数吗?

function getProjectData($uid) {
    $sql = "SELECT * FROM projects WHERE fid = ?";
    $stmt = $this->db->prepare($sql);
    $stmt->execute(array($uid);
    return $stmt->fetch();
}

这样称呼它

$proj_data = getProjectData($uid);

然后获得所需的属性

$title = $proj_data[$what];