は、私は、次のプリペアドステートメントを持って結合していないだろう、とそれだけで$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
FROMstatus
、pass
、fail_count
、tel
、role
を選択します。accounts
WHEREuser
=:ユーザーを、 "}"$ accountInfoの "ブール値(偽)"
(私はbindValueを試してみた、など)
エラーメッセージ/例外(があれば
返されたsqlをコマンドラインにコピーして置き換え、:user
を'jacob'
に置き換えてもうまく動作します。
EDIT:問題が判明(それはtest.*
ためselect
助成金を持っていてもカントー)スクリプトを使用していたアカウントは、テーブルaccounts
のための権限を持っていなかったということでした。その理由は、そのアカウントにselectを付与した後にaccounts
が作成されたためです:/