0

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

templatev3.php(文件)的第 596 行

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

我怎样才能解决这个问题?

4

3 回答 3

1

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

如何修复它的示例如下:

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

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

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

于 2013-10-31T13:51:55.827 回答
0

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

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

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

或者干脆使用第一项

[...]" . $f_squad[0] . "[...]
于 2013-10-31T13:45:52.833 回答
0

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

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

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

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

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

于 2013-10-31T13:46:50.650 回答