我正在编写我的Rest API,我对INSERT / UPDATE / DELETE
的方法有疑问。特别是在执行上述任何方法之前,我想检查URI中传递的记录是否存在:
endpoints/api/user/{id}
现在我的想法是将所有内容放在我创建的图层中,方法是使用这样的方法扩展PDO函数:
public function getWhere($table, $where)
{
return $this->exec("SELECT * FROM $table WHERE $where");
}
如果找到了记录,则适当地返回true
或false
。但我想知道这种方法对sql injection
是否安全。我还想知道在更新或添加记录之前是否还有其他方法可以查看记录是否存在。我认为我的API将变成类似百模的东西,所以我需要一个有效的解决方案,可以轻松地在任何模型中使用。
答案 0 :(得分:3)
不要使用自己的方法扩展PDO类,认为它会有所帮助。它没有,请阅读Your first database wrapper's childhood diseases。
使用常规预准备语句获取特定ID的行,如:
$stmt = $dbh->prepare('SELECT columns FROM users WHERE id = ?');
/* work with $stmt */