2012-03-15 46 views
0

我有以下的一份聲明中,它只是將不綁定$uPDO bindParam不會綁定

$db = 'test'; 
$dbt = 'accounts'; 
$u = 'jacob'; 

$getAccountInfo = $dbh->prepare("SELECT `status`,`pass`,`fail_count`,`tel`,`role` FROM `$db`.`$dbt` WHERE `user`=:user;"); 
    $getAccountInfo->bindParam(':user', $u, PDO::PARAM_STR); 
$getAccountInfo->execute(); 
$accountInfo = $getAccountInfo->fetch(PDO::FETCH_ASSOC); 

echo '<p>$getAccountInfo: "'; 
var_dump($getAccountInfo); 
echo '"</p>$accountInfo: "'; 
var_dump($accountInfo); 
echo "\"<p>" . $accountInfo['status'] . "</p>"; 

它返回:

$ getAccountInfo:「對象(PDOStatement對象) #2(1){[ 「的queryString」] => 串(109),「SELECT statuspassfail_counttelrole FROM testaccounts WHERE user =:用戶; 「}」

$ accountInfo: 「布爾(假)」

(我試過bindValue等)

任何錯誤消息/異常(但如果我給它在正確的數據庫連接信息,它會引發錯誤)

如果我複製/超過返回的sql到命令行並用'jacob'代替:user,它工作得很好。

編輯:原來,問題是,腳本使用該帳戶沒有權限表accounts(甚至壽它有一個select贈款test.*)。我認爲原因是因爲accounts是在我已經授予select到該帳戶後創建的:/

回答

0

原來問題是腳本使用的帳戶沒有表帳戶的權限(甚至它有一個選擇測試授權。*)。我認爲原因是因爲帳戶是在我授予該帳戶的選擇後創建的:/