Php 使用zend对数据进行santize

Php 使用zend对数据进行santize,php,zend-framework,sanitization,Php,Zend Framework,Sanitization,我正在尝试编写一个函数来清理来自客户端的数据。 我正在使用zend框架,我知道它提供了实现这一点的功能。但是我不使用zend_表单,所以我不知道如何使用这些函数 我希望能够清理sql注入中的数据。。。在将其保存到数据库中或对该数据进行任何进一步处理之前 所以我的问题是,有没有任何函数或库可以做到这一点? 我正在寻找一个函数,它将接受一个字符串作为输入,并返回经过消毒的字符串 谢谢你如果你在PDO、Zend_Db或其他ORM中使用准备好的语句,那么参数将被正确转义,以便在大多数情况下进行消毒 PD

我正在尝试编写一个函数来清理来自客户端的数据。 我正在使用zend框架,我知道它提供了实现这一点的功能。但是我不使用zend_表单,所以我不知道如何使用这些函数

我希望能够清理sql注入中的数据。。。在将其保存到数据库中或对该数据进行任何进一步处理之前

所以我的问题是,有没有任何函数或库可以做到这一点?
我正在寻找一个函数,它将接受一个字符串作为输入,并返回经过消毒的字符串


谢谢你

如果你在PDO、Zend_Db或其他ORM中使用准备好的语句,那么参数将被正确转义,以便在大多数情况下进行消毒

PDO示例:

$pdo = new PDO($dsn, $username, $password);
$pdo->prepare("INSERT INTO some_table (col1, col2, col3) VALUES (?,?,?)");
$pdo->execute(array($valueCol1, $valueCol2, $valueCol3));
但是,在您进入该步骤之前,您应该验证数据的用途。如果不想,您不必将Zend_验证与Zend_表单一起使用-您只需创建验证程序实例,然后验证不同的值

ZF文档中的示例:

$validator = new Zend_Validate_EmailAddress();

if ($validator->isValid($email)) {
    // email appears to be valid
} else {
    // email is invalid; print the reasons
    foreach ($validator->getMessages() as $messageId => $message) {
        echo "Validation failure '$messageId': $message\n";
    }
} 

Zend_Form只是处理表单处理和使事情易于重用的一种简便方法。

我没有使用PDO,我所有的模型都是从Zend_db_表扩展而来的。这是否意味着我不必清理我的数据?对于验证部分。我正在验证我的所有数据…zend_db_表呢?它会清理数据吗?这取决于您发出查询的方式。如果您使用的是内置方法(如insert、delete、find等),而不是ADAPTER级别,那么是的,它使用的是准备好的语句,而这些语句又引用了参数。您应该更深入地查看Zend_Db文档,并在必要时查看代码。