2013-10-31 58 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循环或其他东西来循环它们。

相关问题