0
我有以下的一份聲明中,它只是將不綁定$u
:PDO 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
status
,pass
,fail_count
,tel
,role
FROMtest
。accounts
WHEREuser
=:用戶; 「}」$ accountInfo: 「布爾(假)」
(我試過bindValue等)
任何錯誤消息/異常(但如果我給它在正確的數據庫連接信息,它會引發錯誤)
如果我複製/超過返回的sql到命令行並用'jacob'
代替:user
,它工作得很好。
編輯:原來,問題是,腳本使用該帳戶沒有權限表accounts
(甚至壽它有一個select
贈款test.*
)。我認爲原因是因爲accounts
是在我已經授予select到該帳戶後創建的:/