PDO预处理语句中的数组到字符串转换

时间:2015-03-13 19:11:52

标签: php mysql pdo

这是一个返回已登录用户的用户名的功能。但是,我似乎无法解决正在发生的事情,以及为什么我会在第一个Notice: Array to string conversion in..声明中获得if()

function getuserfield($field, $link) {
        $query = $link->prepare("SELECT `$field` FROM `users` WHERE `id`= :session_id");
        if ($query->execute(array(':session_id' => $_SESSION['user_id']))) {
                if ($query_result = $query->fetchAll(PDO::FETCH_ASSOC)) {
                        return $query_result;
                }
        }
}

除此之外,整个页面变得不可读(就编码而言)。当然,我会这样使用它:

echo "<p>Greetings, you are logged in as:" . getuserfield('username', $link) . "</p>";

1 个答案:

答案 0 :(得分:0)

Notice: Array to string conversion表示$_SESSION['user_id]是我尝试以字符串形式访问的数组。

$query->execute(array(':session_id' => $_SESSION['user_id']['id']))

解决了这个问题。然后使用两个foreach()语句调用该函数。