2012-03-15 16 views
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)「 test FROM statuspassfail_counttelroleを選択します。 accounts WHERE user =:ユーザーを、 "}"

$ accountInfoの "ブール値(偽)"

(私はbindValueを試してみた、など)

エラーメッセージ/例外(があれば

返されたsqlをコマンドラインにコピーして置き換え、:user'jacob'に置き換えてもうまく動作します。

EDIT:問題が判明(それはtest.*ためselect助成金を持っていてもカントー)スクリプトを使用していたアカウントは、テーブルaccountsのための権限を持っていなかったということでした。その理由は、そのアカウントにselectを付与した後にaccountsが作成されたためです:/

答えて

0

スクリプトが使用していたアカウントにテーブルアカウントの権限がないことが判明しましたテストのためのグラントを選択してください。理由は、そのアカウントにselectを付与した後にアカウントが作成されたためです:/

関連する問題