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


php error : Notice: Array to string conversion

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

模板v3的第596行.php(文件)

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

我该如何解决这个问题?

很明显

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

如何修复它的示例如下所示:

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

由于我不知道您的数组实际上是什么样子,因此您需要自己弄清楚,但是在它之后说 [1] 说它应该将数组的第二个元素(字符串 bob)与 mysql 查询相结合。如果你想把多个值实际放到这个查询中,你总是可以使用 for 循环或其他东西循环它们。

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

由于您只提供了一行代码,我怀疑有人能为您提供很多帮助。

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

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

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

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

根据您的需要,您可以使用implode转换数组

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

或者干脆使用第一项

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