插入数组上的 zend db 引用(转义)将引号添加到字符串

Gis*_*eri 2 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'
)
Run Code Online (Sandbox Code Playgroud)

插入的字符串周围有引号,数字插入为 0(零)。当我删除 $zenddb->quote() 时,它工作正常。但是,我该如何正确地逃避它们。

luc*_*Dev 5

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

  • 好吧,这是有道理的。所以,如果我理解,如果我将它作为数组插入,我不需要手动引用它,因为当我以这种方式插入时,zend 已经引用了数组中的每个值? (2认同)