2013-08-19 72 views
0

即時通訊使用以下登錄我的用戶在檢索值,從列在表中使用PDO和MySQL

/*** 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; 
+1

您是否試過$ username ['level']?因爲你將結果保存到$用戶名。 – Jurik

+1

你的代碼非常不一致。你從哪裏得到這個$結果?爲什麼要在$ username變量中設置級別? –

回答

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"); 
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'];