2014-07-13 3 views
0

PHP mysqli가 SELECT 문을 준비했지만 작동하지 않습니다. 여기 당신이 알아야 할 몇 가지 세부 사항이 있습니다.mysqli 준비된 SELECT 쿼리가 작동하지 않습니다.

테이블 이름은 'userbalance'입니다. 신분증과 잔고가 2 개 있습니다. 순간

, I는 ID = 76,561,198,061,537,594 균형 = 10

ID가 BIGINT이고 균형이 소수 인 테이블에서 단지 1 개 행을 갖는다. 내가 $userid 에코 경우 내가 올바른 ID입니다 76561198061537594를 얻을

require ('steamauth.php'); 
if(!isset($_SESSION['steamid'])) { } 
else { 
    include ('userInfo.php'); 
} 

include("conninfo.php"); 
$userid = $steamprofile['steamid']; 
$query = "SELECT * FROM userbalance WHERE ID = ?"; 
$stmt = $mysqli->prepare($query); 
$stmt->bind_param('s', $userid); 
$stmt->execute(); 
$stmt->bind_result($id, $credits); 
$stmt->close(); 
echo "Credits: $credits"; 

:

여기 내 코드입니다.

그러나 출력은 Credits:으로 표시됩니다. 저울의 10이 표시되지 않습니다.

반면에 WHERE ID = ?WHERE ID = 76561198061537594으로 바꿉니다.

왜 이런 일이 발생합니까?

+0

질문 **을 편집하고'$ id'를 출력하는 데 사용하는 정확한 코드를 게시 할 수 있습니까? (이 같은 문제가 간단한 맞춤법 오류로 인한 것임을 알면 놀라실 것입니다.) –

+0

정말 필요하지 않습니다. 전에 "SELECT balance from FROM userbalance WHERE ID =?"를 사용하기 전에 그러나 그것이 작동하지 않았기 때문에 나는 asterik에 넣었다. 그것은 어쨌든 도움이되지 않습니다. 어디서나 $ id를 인쇄하지 않습니다 – user3808970

+0

질문 10이 표시되지 않습니다. 10을 표시 할 코드가 없습니다. 실제로 필요하지 않다고 말합니다. 그러면 문제가 해결 되었습니까? –

답변

0

$userid은 정수이므로 type ('s'는 문자열에 해당함)을 잘못 사용하고 있습니다. 대신 다음을 시도하십시오 :

$stmt->bind_param('i', $userid); 
+0

도움이되지 않습니다. 더하기 나는 어딘가에서 bigints와 함께 's'를 사용하는 것이 더 낫습니다. – user3808970

관련 문제