2014-07-13 85 views
0

我有一個PHP mysqli編寫的SELECT語句,但它不工作。這裏有一些你需要知道的細節。mysqli編寫的SELECT查詢不起作用

表名是'userbalance'。有2列,ID和餘額。

此刻,我有在表中,其中,ID = 76561198061537594和平衡= 10

ID是bigint並平衡是一個小數只有1行。

這裏是我的代碼:

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"; 

如果我贊同$userid,我得到76561198061537594這是正確的ID。

但輸出顯示爲Credits:。餘額的10未顯示。

鑑於,如果我用WHERE ID = ?替換WHERE ID = 76561198061537594它的作品。

這是怎麼發生的?

+0

你可以請**編輯問題**併發布你用來打印'$ id'的確切代碼嗎? (你會驚奇地發現這樣的問題是由於一個簡單的拼寫錯誤造成的。) –

+0

我並不需要那麼做。在我剛剛使用「SELECT balance FROM userbalance WHERE ID =?」之前但既然沒有用,我就把星號放進去。反正也沒有幫助。我不打印任何地方的$ id – user3808970

+0

問題是爲什麼10不顯示。你沒有代碼來顯示10.你說你並不需要它。問題解決了嗎? –

回答

0

由於$userid是整數,你使用了錯誤的type(「S」對應於字符串);試試這個:

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

沒有幫助。再加上我讀了一些地方,最好用bigint來使用's' – user3808970