2013-10-31 48 views
0

所以我有一個問題,我的cms編碼。這是一個跟蹤某些人的數據庫。我需要幫助,因爲一個錯誤彈出,上面寫着「注意:數組字符串轉換在行596」 templatev3.php的php錯誤:注意:數組到字符串的轉換

線596(文件)

$m_query = mysql_query("SELECT * FROM mbrlist WHERE sid = '" . $f_squad . "'"); 

我該如何解決這個問題?

+2

什麼類型是$ f_squad?它是一個字符串還是數組? – iveqy

回答

0

好像$f_squad是一個數組而不是字符串。

取決於你需要什麼,你可以通過使用implode

//string implode (string $glue , array $pieces) 
[...]" . implode('', $f_squad) . "[...] 

數組轉換或簡單地使用第一項

[...]" . $f_squad[0] . "[...] 
0

你得到應該是不言自明的錯誤。您正在使用包含數組的變量$ f_squad。你應該將該數組轉換爲字符串。但是,因爲它是一個數組,它可能包含多個值,所以它取決於你如何使代碼工作。

由於您只提供了一行代碼,我懷疑任何人都可以幫助您。

如果你只需要使用數組的第一個值來查詢數據庫,並且陣列具有從0開始,你可以做以下

$m_query = mysql_query("SELECT * FROM mbrlist WHERE sid = '" . $f_squad[0] . "'"); 

或者你可以使用數組的任意鍵數字鍵你喜歡。 但請記住,這不是一個理想的解決方案。您可能有數組爲空的實例,這會產生另一種類型的錯誤。

1

非常明顯,$ f_squad值是一個數組,並導致問題。您正在使用組合2個字符串的.運算符,但不是字符串數組(因爲寬鬆的php是這種類型的東西)。

如何解決這個問題的一個例子是這樣的:

$foo = array("string1", "bob"); 

$m_query = mysql_query("SELECT * FROM mbrlist WHERE sid = '".$foo[1]."'"); 

由於我不知道你的陣列實際上看起來像你需要八九不離十找出答案的事情,但說[1]後,說它應該把數組的第二個元素(字符串bob)和mysql查詢結合起來。如果你想實際上把多個值放到這個查詢中,你可以用for循環或其他東西來循環它們。

相關問題