php - 同时使用 PDO 准备好的语句和 filter_var?

标签 php sql filter pdo code-injection

嘿伙计们,我正在学习 OO PHP,并且一直在研究 PDO——但我不清楚的一件事是我是否应该将 PDO 准备好的语句与 filter_var() 结合使用。功能或仅靠其自身。例如,我应该做什么

$query = $database->connection->prepare("SELECT name FROM acounts WHERE id = :id LIMIT 1");
$query->bindParam(":id", $this->id, PDO::PARAM_INT);

或者类似的东西?

$id = filter_var($this->id, FILTER_VALIDATE_INT);
$query = $database->connection->prepare("SELECT name FROM acounts WHERE id = :id LIMIT 1");
$query->bindParam(":id", $id, PDO::PARAM_INT);

最佳答案

一般来说,这是不同的任务。
您可以根据需要验证您的数据。
但 PDO 本身不需要任何验证。

对于您提供的代码,不需要使用filter_var(),因为带有 PDO::PARAM_INT 标志的bindParam 会执行相同的工作

关于php - 同时使用 PDO 准备好的语句和 filter_var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795909/

相关文章:

php - (400)未知指标:ga:socialNetwork'

php - MySQL 使用两个查询创建事件调度程序

java - 从两个表中获取相似的列名和计数

sql - SqlConnection 是否并行处理查询?

mysql - Zend Framework 1 查询,按满足条件对结果进行排序

php - 从数组中删除值高于/低于阈值的项目

php - 用 "From:"+ WooCommerce 中的最低价格替换可变产品价格范围

php - MySQL "IN"子句中的逗号分隔值

sql - 将一行拆分为多行——表转换

javascript - Checkboxlist ng-repeat过滤器动态angularjs