2012-02-23 47 views
0

謝謝大家。根據你的回答,看起來我會送回去的。我認爲這可能是我可以快速解決的問題。在這個Mysql查詢中,(整數)是什麼意思?

我們的一位客戶向我們發送了一個腳本,其中一個文件包含以下內容。

AND catparentid = '".(integer)."'"; 

有沒有人有任何想法爲什麼單詞「整數」將介於括號之間或它應該做什麼?我在網上找不到任何關於它的信息。這是一個SQL查詢的結尾部分。劇本抱怨「。」在這個查詢中,但我懷疑問題是「整數」部分...?

這是一個完整的查詢....

$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote($prod)."' AND catparentid = '".(integer)."'"; 

謝謝!

+0

的字符串,它不是有效的SQL。這很可能是一個錯字。 – 2012-02-23 19:19:06

回答

0

這是一個PHP的錯誤,而不是一個MySQL的一個。

我只能推測這個腳本實際上應該做什麼,但它可能意味着cast變量爲整數,因爲catparentid列是整數類型(這是一個好主意),但變量不是其實有:

$sql = "..AND catparentid = '".(integer) $catparentid ."'"; 
//          ^forgot something? 

然而,眼看[|PREFIX|],它更可能只是一個佔位符as Michael suggests

+0

感謝Madmartigan,前綴部分是更大的購物車的一部分,所以它在所有的腳本中使用,但是,這個catparentid的事情是混亂。 – Tsanders 2012-02-23 19:21:38

0

最有可能的是,客戶端只是表明值catparentid應該是一個整數,並且在PHP中執行查詢時,應該用整數變量代替(integer)

// An integer... 
$catparentid = 12345; 
$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote($prod)."' AND catparentid = '".$catparentid."'"; 

或者,由於引用MySQL中的數值是沒有必要的:

$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote($prod)."' AND catparentid = $catparentid"; 
+0

謝謝邁克爾。這有點神祕,因爲我們不是爲客戶構建它,它應該準備好去。嗯... – Tsanders 2012-02-23 19:14:45

0
AND catparentid = '".(integer)."'"; 

強烈PHP,這裏的點作爲字符串連接符的氣味。我懷疑這是從PHP代碼粘貼,並沒有完全消毒。

在PHP中,這將創造各種

AND catparentid = '(integer)' 
+0

謝謝歐根。他們用「(某事在中間)」。在他們所有的疑問。新對我來說。 – Tsanders 2012-02-23 19:53:05