2014-03-13 22 views
1

我正在插入一个数组到我的dbatabase使用Zend,我试图使用$ zenddb-> quote($ string)函数来转义我的值,但它将引号添加到字符串中,因此插入后引号仍然存在于数据库中。我使用不正确?插入数组zend db报价(转义)将字符串添加到引号

$data['tournament_id'] = $this->zdb->quote($_POST['winners_tournament_id']); 
$data['user_id']  = $this->zdb->quote($_SESSION['user']); 
$data['user_name'] = $this->zdb->quote($_SESSION['first_name']); 

$insert = $this->zdb->insert("submitters", $data); 

//print_r($data) looks like this: 
Array 
(
    [tournament_id] => '55' 
    [user_id] => '2182609' 
    [user_name] => 'eric' 
) 

字符串正在用引号括起来,并且数字被插入为0(零)。当我删除$ zenddb-> quote()时,它工作正常。但是,我如何正确地逃避它们。

回答

4

在这种情况下,您不应该使用引号功能。因为您使用的是Zend_Db_Table适配器($ db-> insert和$ db-> update),您数组中的数据已经被转义。这很可能是在插入或更新数据之前添加一组额外的引号。希望这可以帮助。

+1

好的,这是有道理的。所以,如果我明白了,如果我将它作为数组插入,我不需要手动引用它,因为当我以这种方式插入时,zend已经引用了数组中的每个值? – Gisheri