2012-03-15 3 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) {[ "검색어 문자열"] => 스트링 (109)은 "status, pass, fail_count, tel, role test에서 선택하십시오. accounts WHERE user = 사용자; "}"

$ AccountInfo의 (등 내가 bindValue을 시도했다) "부울 (거짓)"

오류 메시지/예외 (하지만 경우 나는 정확한 db 연결 정보를 제공합니다. 오류가 발생합니다.)

반환 된 sql을 명령 줄에 복사하고 :user'jacob'으로 바꾼다면 제대로 작동합니다.

편집는 : 문제는 스크립트가 사용 된 계정이 테이블 accounts (이 test.*에 대한 select 보조금에도 THO)에 대한 권한을 가지고 있지 않은 것이 었습니다 밝혀졌습니다. 이유는 해당 계정에 대한 선택을 부여한 후에 accounts이 생성 되었기 때문이라고 생각합니다./

답변

0

스크립트가 사용하는 계정에 테이블 계정에 대한 권한이 없다는 것이 나타났습니다. 테스트를위한 권한 부여를 선택하십시오. *). 그 이유는 그 계정에 select를 부여한 후에 계정이 생성 되었기 때문이라고 생각합니다./