php - Laravel 准备语句 UPDATE 查询

标签 php mysql laravel

我想弄清楚如何更新数据库行,但我想防止 sql 注入(inject)

$postdata = $request->except('token');
$src = json_decode($postdata['data']);

$locationData = addslashes ( $src->locationData );
$userData = addslashes ( $src->userData );
if ( isset($src->routeData) ){
    $routeData = addslashes ( $src->routeData );
} else {
    $routeData = null;
}
$url = addslashes ( $src->url );

DB::statement("UPDATE maps SET locationData = '$locationData', userData = '$userData', routeData = '$routeData' WHERE url = ?", [$url]);

如果有人在上面向我展示如何保护查询,我将非常感激。

最佳答案

最安全的方法是使用模型:

模型/Map.php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Map extends Model {
    protected $table = 'maps'
}

在你的代码中:

$url = 'blabla';
$locationData = 'dadada';
$userData = 'nomnomnom';

Map::where('url', '=', $url)->update(compact('locationData', 'userData'));

关于php - Laravel 准备语句 UPDATE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662314/

相关文章:

postgresql - 带有查询生成器的值数组的 JSON Where 子句

php - gzinflate : max. 空间以避免内存不足?

java - 连接数据库失败,HTTP 状态 500

node.js - Laravel Homestead 中 npm 安装错误有解决方案吗?

mysql - 忽略数据库中的重复行

mysql - 查询错误 (1248) : Every derived table must have its own alias INNER JOIN

laravel - 如何使用 Laravel API 资源对加载的关系进行分页

php - 在不获取关联模型的情况下检索模型 - CakePHP

php - 通过 jquery/ajax 和 json 抛出 php 异常的干净方法

php - 比较时间时获取数据