[0] =>数组末尾的bool(false)

时间:2014-06-19 17:00:06

标签: php mysql arrays

我有一个如下所示的数组:

$object = array(filed1=>newvalue1,field2=>newvalue2,field3=>newvalue3);

我需要用mysql_real_escape_string检查它并将其传递给mysql

foreach ($object as $key => $value)
    {
        $key = mysql_real_escape_string($key . '');
        $value = mysql_real_escape_string($value . '');
        $object[$key] = $value;
    }

最后它返回以下数组:

array(4) { 
          ["filed1"]=> string(9) "newvalue1" 
          ["field2"]=> string(9) "newvalue2" 
          ["field3"]=> string(9) "newvalue3" 
          [0]=> bool(false) 
         } 

最后[0] =>的方式和原因布尔(假)出现了吗?我该如何删除它?

P.S。请,没有“使用PDO”建议......这是我的家庭任务,PDO不是一个选项。谢谢。

1 个答案:

答案 0 :(得分:4)

这里有两个问题。

首先,mysql_real_escape_string需要连接。如果你还没有创建一个,它会尝试通过调用没有参数的mysql_connect来创建它,如果后者失败,它将返回一个布尔值为FALSE。

其次,虽然您的意图似乎是更新原始$object密钥,但实际上您正在更新mysql_real_escape_string返回的密钥。

$key = mysql_real_escape_string($key . '');

// This sets $key to FALSE

$value = mysql_real_escape_string($value . '');

// This sets $value to FALSE

$object[$key] = $value;

// $object[FALSE] = FALSE;

最后一个语句在第一次运行时添加了额外的条目,并在下次运行时更新它(具有相同的值)。