2012-10-18 42 views
2

我知道的通用主題。它很難具體在一個主題。無論如何,我有這個SQL邏輯的問題:將整數分配爲變量

"SELECT * FROM imagecomment WHERE filename = :filename ORDER BY comment_timestamp DESC LIMIT '$min', '$max'"; 

當我嘗試相同的邏輯,但直接在sql邏輯它的工作與整數。變量min和max是整數:

int(10) int(20)var_dump()它們是我得到的。我也嘗試將變量(正如我通常所做的那樣)綁定到變量(),但它仍然無效。

+1

不要逃脫你的極限值 – silly

+2

不需要單引號 – Jason

+0

好的問題解決了謝謝 – user1683645

回答

5

你正在使用這個在PDOStatement,對不對? (由於您使用:文件名)

$db = new PDO(); //assume you have this set

$stmt = $db->prepare(
     "SELECT * 
      FROM imagecomment 
      WHERE filename = :filename 
      ORDER BY comment_timestamp 
      DESC LIMIT :min, :max"; 

$stmt->bindValue(':filename', $filename); 
$stmt->bindValue(':min', $min); 
$stmt->bindValue(':max', $max); 

$stmt->execute(); 

而且你應該能夠獲取你的結果,如果不行,讓我知道你會得到什麼樣的錯誤從PDOStatement對象回來。

+0

現在工作正常,謝謝你的答案。 – user1683645

+0

當我在sql邏輯中直接使用參數而不是整數時,我沒有得到任何結果集「SELECT * FROM imagecomment WHERE filename =:filename ORDER BY comment_timestamp DESC LIMIT:min,:max」;並完全按照您所做的將值綁定到參數。我之前也被告知,我應該直接插入整數。你對此有何想法? – user1683645

4
"SELECT * FROM imagecomment 
WHERE filename = :filename ORDER BY comment_timestamp DESC LIMIT $min, $max";