所以我的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] . "[...]