php Laravel删除查询生成器

fhity93d  于 2023-01-04  发布在  PHP
关注(0)|答案(2)|浏览(120)

在Laravel 4中Illuminate\Database\QueryBuilder类中delete函数接受null作为id参数。这个函数的行为意味着如果我有这样的东西:

DB::table('users')->where('id', $id)->delete();

如果$id将作为null传递,它将截断整个表,这意味着除了标准验证之外,我还必须用! is_null($id)验证 Package 每个delete语句,这是安全漏洞还是被视为标准实践?

owfi6suc

owfi6suc1#

我认为你误解了参数的用途。它只是你所展示的例子的一个 * 快捷方式 *。如果你有一个用户ID,你可以删除他们,而不需要写where子句。

DB::table('users')->delete($id);

以上与此相同:

DB::table('users')->where('id', $id)->delete();

显然,在使用这些方法之前,您需要执行一个检查,以确保提供了一个有效的ID。我不会说这是一个安全漏洞,只是开发人员在开发应用程序时需要注意的一些问题。您不能在没有首先验证输入的情况下随意删除内容。

ehxuflar

ehxuflar2#

DB::table('table_name')->where('table_id', $request['request_id'])->delete();

相关问题