2009-04-08 43 views
0

我使用的mysqli prepard查詢使用PHP,代碼:顯示MySQL查詢的內容,只有第一場作品

$retreiveQuery = 'SELECT username, firstname, lastname FROM USERS WHERE username = ?'; 

if ($getRecords = $con->prepare($retreiveQuery)) { 
    $getRecords->bind_param("s", $username); 

    $getRecords->execute();   
    $getRecords->bind_result($username, $firstname, $lastname); 

echo "<h1>".$username."</h1> 
<p><strong>First Name: </strong>".$firstname." 
<p><strong>Surname: </strong>".$lastname." 
} else { 
print_r($con->error); 

這是很奇怪的。用戶名是唯一顯示的字段。爲什麼其他欄不會被退回/裝訂?

如果我做

SELECT username, firstname, lastname FROM USERS WHERE username = 'test'; 

直接到數據庫,將顯示所有領域,所有包含有效數據。

回答

1

你必須調用

$getRecords->fetch(); 

bind_result()後,實際獲得的記錄。

正在輸出用戶名,因爲您已將其設置爲輸入參數。

1

如果您使用不同的變量名稱輸出用戶名,會發生什麼情況?像這樣:

SELECT username as user_name,firstname,lastname FROM USERS WHERE username ='test';

然後

$ getRecords-> bind_result($ USER_NAME,$姓名,$姓氏);

我想知道是否因輸入和輸出使用相同名稱而感到困惑?

+0

ok ..所以這是一個與結果綁定的問題,我猜...但如何知道它是什麼? – 2009-04-08 21:15:00

1

我還沒有運行這個,但我注意到,你正在使用相同的變量,$ username的綁定參數和綁定結果變量。

可能是結果沒有返回任何結果,但是$ username有一個顯示的值,因爲您事先分配了它,而不是它來自數據庫。

嘗試使用不同的變量,如$ param_user和$ result_user,看看會發生什麼。我的猜測是沒有結果會返回,這將指向查詢或結果綁定的問題。

+0

是的,這是答案。那麼結果綁定會出現什麼問題?我如何檢查這個問題? – 2009-04-08 21:13:24

相關問題