[英]PHP Notice: Array to string conversion Error
一段时间以来遇到此错误,无法找到解决问题的任何结论性答案。 我试过在第59行删除$key
中的引号但是没有用。
if (!get_magic_quotes_gpc()) {
if (isset($_POST)) {
foreach ($_POST as $key => $value) {
$_POST['$key'] = trim(addslashes($value));
}
}
if (isset($_GET)) {
foreach ($_GET as $key => $value) {
$_GET[$key] = trim(addslashes($value));
}
}
}
第59行
$_POST['$key'] = trim(addslashes($value));
屏幕上出错
注意:第59行的C:\\ Inetpub \\ vhosts \\ domain.com \\ httpdocs \\ library \\ config.php中的数组到字符串转换
在分配之前检查它是否是数组
$_POST[$key] = !is_array($value) ? trim(addslashes($value)) : '';
// ^ Remove the quotes here // ^ Do something
// Instead of
// Using empty
我认为你应该使用这段代码$_POST[$key] = $value;
而不是使用这个$_POST['$key'] = trim(addslashes($value));
或者检查值是否在数组中
根据PHP.net ,函数addslashes()接受String类型作为参数。 检查$ value的类型。 如果它是一个数组本身,那么addslashes()可能会抛出错误。
PS:如果你想使用$ key的值作为$ _POST数组的索引,你应该使用$ _POST [$ key]而不是$ _POST ['$ key']。
做这个:
foreach ($_POST as &$value) {
$value = is_array($value) ?
array_map(function($x) { return trim(addslashes($x)); } :
trim(addslashes($value));
}
但是,如果您的任何参数是多维数组,则仍可能失败。 正如评论中所提到的,正确的解决方案是使用带参数的预准备查询,而不是将字符串插入SQL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.