我正在编写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将变成类似一百个模型的东西,所以我需要一个有效的解决方案来轻松地在任何模型中使用。
不要用自己的方法扩展PDO类,认为这会有所帮助。它没有,请阅读你的第一个数据库包装的儿童疾病。
使用正常准备的语句为特定id获取一行,如:
$stmt = $dbh->prepare('SELECT columns FROM users WHERE id = ?');
/* work with $stmt */