插入数组上的zend db quote(escape)将引号添加到string

时间:2014-03-13 15:53:09

标签: php mysql string zend-framework zend-db

我正在使用Zend将数组插入到我的数据库中,并且我尝试使用$ zenddb-> quote($ string)函数来转义我的值,但是它在字符串中添加了引号,所以引号仍然是我插入后在数据库中。我使用不正确吗?

$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()时,它工作正常。但是,我该如何正确地逃避它们呢。

1 个答案:

答案 0 :(得分:4)

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