2013-02-09 5 views
3

항상 PDO 문을 사용했지만 어떤 이유로 PDO를 PDO를 설치하도록 설득 할 수는 없지만 MySQLi를 사용하고 있습니다. 내가 잘못한 것을 단서가 없습니다. 연결 오류가 발생하지 않고 출력 오류가 발생해도 쿼리 오류가 발생하지 않습니다. 여기 내가하는 일이있다.준비된 MySQLi 문

include 'MySQLiConnect.php'; 

if($stmt = $mysqli->prepare("SELECT * FROM zipCodeTable WHERE zip_code = ?")){ 

    $stmt->bind_param("s", '07110'); 

    $stmt->execute(); 

    $stmt->bind_result($resultsArray); 

    $stmt->fetch(); 

    foreach($resultsArray as $columnData){ 

     $matchingZipcode = $columnData['zip_code']; 
     $matchingTimezone = $columnData['time_zone']; 
    }  

    $stmt->close(); 


} 

echo $matchingZipcode.', '.$matchingTimezone; 

이 단지 사용자가, 내가 수동에서 바로 그것을 할 tryed, 전에 MySQLi가, 내가 잘못 무엇인지 문을 준비하지 사용한 적이 우편 번호 확인을 위해 기본적으로. 이것을 읽어 주셔서 감사합니다.

+2

"서버 사용자"가 PDO를 사용하지 못하게하려면 새로운 서버 사람이 필요합니다. – ceejayoz

+0

대답이 아니지만 왜 테이블에'Table'을 추가합니까? – PeeHaa

+0

@ceejayoz 나는 친구를 돕고 있었고,이 바보 같은 우편 번호 확인을 할 구름 기계를 관리했다. – user1053263

답변

3

리터럴 문자열을 "바인딩"하려고합니다. 당신은 이것을 할 수 없습니다. 변수를 바인드해야합니다.

변경

$stmt->bind_param("s", '07110'); 

또한
$string = '07110'; 

$stmt->bind_param("s", $string); 

, 당신은 결과를 바인딩 할 때 각 필드에 반환 당신이 변수를 제공해야합니다으로. 예를 들어

:

$stmt->bind_result($zipCode, $timeZone); 

SELECT *를 사용할 때 약간 문제가있다. 이 의견에 대해 궁금한 점이 무엇인지 궁금해하실 것입니다. http://www.php.net/manual/en/mysqli-stmt.bind-result.php#85470

+0

오, 좋아, 지금이 말이 맞다! 매력처럼 일 했어요, 정말 고마워요! – user1053263