내가 다음 준비된 명령문을 가지고 결합되지 않고, 그냥 $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) {[ "검색어 문자열"] => 스트링 (109)은 "
status
,pass
,fail_count
,tel
,role
test
에서 선택하십시오.accounts
WHEREuser
= 사용자; "}"$ AccountInfo의 (등 내가 bindValue을 시도했다) "부울 (거짓)"
오류 메시지/예외 (하지만 경우 나는 정확한 db 연결 정보를 제공합니다. 오류가 발생합니다.)
반환 된 sql을 명령 줄에 복사하고 :user
을 'jacob'
으로 바꾼다면 제대로 작동합니다.
편집는 : 문제는 스크립트가 사용 된 계정이 테이블 accounts
(이 test.*
에 대한 select
보조금에도 THO)에 대한 권한을 가지고 있지 않은 것이 었습니다 밝혀졌습니다. 이유는 해당 계정에 대한 선택을 부여한 후에 accounts
이 생성 되었기 때문이라고 생각합니다./