0

我使用以下内容登录我的用户,

/*** select the users name from the database ***/
    $dbh = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $dbh->prepare("SELECT * FROM access_users 
    WHERE id = :phpro_user_id");

    $stmt->bindParam(':phpro_user_id', $_SESSION['user_id'], PDO::PARAM_INT);

    $stmt->execute();

    $username = $stmt->fetchColumn();

    if($username == false)
    {
    $message = 'Access Error';
    }
    else
    {
        // done
    }

我想检索用户level值,这是我表中的一列,只是我不确定如何使用 PDO 执行此操作?

我试过了...

print $result->level;
4

2 回答 2

2

因为不可能从你的问题中得到,你要检索什么列,假设它被称为“用户名”:

$stmt = $dbh->prepare("SELECT username FROM access_users WHERE id = ?");
$stmt->execute(array($_SESSION['user_id']));
$username = $stmt->fetchColumn();

这是如何fetchColumn()工作的。

但是如果你想获取所有的用户信息,其中包括级别和用户名,你必须以通常的方式检索一整行。

$stmt = $dbh->prepare("SELECT * FROM access_users WHERE id = ?");
$stmt->execute(array($_SESSION['user_id']));
$row = $stmt->fetch();
if(!$row['level'])
{
    $message = 'Access Error';
}
echo "Hello ".$row['username'];
于 2013-08-19T11:06:39.897 回答
0

尝试以下操作:

$stmt = $dbh->prepare("SELECT user_id,level FROM access_users 
    WHERE id = :phpro_user_id");

//rest of the code up until here

$result = $stmt->fetchColumn(1);

print("level= $result\n");
于 2013-08-19T11:06:36.707 回答