使用PDO从数据库中动态选择

时间:2017-02-14 13:23:21

标签: php mysql pdo

我有一个小问题。

我正在使用PDO进行数据库查询。现在我想访问表中一行的单个值。

这是我的代码:

public function select_single_value_login_member($field_name, $key)
{
    $select_field = "SELECT {$field_name} FROM DB#######.login_member WHERE id_member = '$key'";

    $value = $this->db_link->query($select_field)->fetchObject()->value;

    // Zurückgeben
    return $value;
}

this->db_link是一个全局变量,它包含通过PDO的数据库连接。

现在我想在另一个文件中调用此方法:

$admin = $db->select_single_value_login_member('admin', $key);

我现在的问题是,$admin值为空。

是否有任何代码缺失或错误?

1 个答案:

答案 0 :(得分:2)

我不认为您正在寻找属性value的价值,您可能想要$field_name属性的值。

所以你的代码应该是这样的:

 ...
 $value = $this->db_link->query($select_field)->fetchObject()->{$field_name};
 //                                                       here ^^^^^^^^^^^^^

但是,请注意您应该为$key值使用预准备语句,并针对允许列名称的白名单检查$field_name以避免sql注入。