php错误:注意:数组转换为字符串

时间:2013-10-31 13:35:19

标签: php content-management-system

所以我的cms编码有问题。它是一个跟踪某些人的数据库。我需要帮助,因为会弹出一个错误,上面写着“注意:第596行中的数组到字符串转换”

templatev3.php(文件)的第596行

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

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

很明显,$ f_squad值是一个数组,导致问题。你正在使用.运算符,它结合了2个字符串,但不是字符串数组(因为松散的php就是这种类型的东西)。

如何修复它的例子如下:

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

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

因为我不知道你的数组实际上是什么样的,你需要自己解决这个问题,但是在它说它应该将数组的第二个元素(字符串bob)与mysql查询结合起来后再说[1] 。如果您想要将多个值实际放入此查询中,则可以使用for循环或其他内容循环遍历它们。

答案 1 :(得分:0)

似乎$f_squad是一个数组而不是一个字符串。

根据您的需要,您可以使用implode

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

或只是使用第一项

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

答案 2 :(得分:0)

您获得的错误应该是不言自明的。您正在使用包含数组的变量$ f_squad。您应该将该数组转换为字符串。但是因为它是一个数组,它可能包含多个值,所以它取决于你希望代码如何工作。

由于您只提供了一行代码,我怀疑任何人都能帮助您。

如果您只需要使用数组的第一个值查询数据库,并且数组具有从0开始的数字键,则可以执行以下操作

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

或者您可以使用您喜欢的任何数组键。 但请记住,这不是一个理想的解决方案。您可能有数组为空的实例,这会产生另一种类型的错误。