2013-10-22 62 views
0

我想如下執行事先準備好的聲明:得到一個500錯誤執行預先準備的聲明

$usersStmt = $db->prepare ("SELECT * FROM users LIMIT :startAt,:pageSize"); 
$usersStmt->bindParam (':startAt', $startAt); 
$usersStmt->bindParam (':pageSize', $pageSize); 

$usersStmt->execute(); 

但是,這給了我一個500錯誤。 SQL查詢中的逗號是個問題嗎?

+0

afaik'bindParams'不應該與'LIMIT'參數一起使用。 –

+0

HTTP 500錯誤?這通常表示服務器錯誤。但是一些服務提供者也可能會因編程錯誤而引發錯誤(我的錯誤)。 – Crackertastic

+1

@u_mulder從MySQL 5.0.7開始,使用預處理語句時,佔位符可用於LIMIT子句的參數。 –

回答

0

It's the way you are binding your variables or the emulation mode.

注意$ startAt和$ pageSize的必須是int型的了。

此外,你必須養成偷看到錯誤日誌的習慣。「500錯誤」不適合你。它適用於瀏覽器和搜索引擎。它沒有提到錯誤,只是表示有一個。但是PHP對你的錯誤有一個文本解釋,你需要閱讀和理解。你,但沒有其他人。這就是爲什麼在現場環境中出現錯誤記錄,並未向所有人顯示。