所以我的cms编码有问题。它是一个跟踪某些人的数据库。我需要帮助,因为会弹出一个错误,上面写着“注意:第596行中的数组到字符串转换”
templatev3.php(文件)的第596行
$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]."'");
因为我不知道你的数组实际上是什么样的,你需要自己解决这个问题,但是在它说它应该将数组的第二个元素(字符串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] . "'");
或者您可以使用您喜欢的任何数组键。 但请记住,这不是一个理想的解决方案。您可能有数组为空的实例,这会产生另一种类型的错误。