相关疑难解决方法(0)

Laravel 4:如何运行原始SQL?

我想在Laravel 4中重命名一个表,但不知道该怎么做.

SQL是alter table photos rename to images.如果有一个Eloquent解决方案,我也想知道如何运行原始SQL,因为有时候别无选择.

laravel laravel-4

70
推荐指数
5
解决办法
14万
查看次数

DB::语句(); 在 Laravel (5.5)

我正在使用 Laravel 5.5 构建一个应用程序,并且必须为扩展 PostgreSQL 运行一些 SQL 查询,而 Eloquent ORM (PostGIS) 不支持这些查询。相反,我使用 DB::statement($queryString); 将数据插入数据库。$queryString 由输入变量与预构建的 SQL 语句连接而成。

这是我的控制器的代码(请注意,实际查询更复杂,这只是一个示例):

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{   
    $id= $request->input('id');
    $name= $request->input('name');
    $geom = $request->input('geom');

    $geom = DB::raw("ST_TRANSFORM(ST_GeomFromGeoJSON('".$geom."'), 3857)");


    $statement = "INSERT INTO tableName(id, name) VALUES ('".$id."', '".$name."', ".$geom.");";
    DB::statement($statement);
    return 'Insert Successful';
}
Run Code Online (Sandbox Code Playgroud)

我对这种方法有两个问题:

  1. 如何保护我的应用程序免受 SQL 注入攻击?

  2. 如何检查查询是否成功运行?DB::statement 似乎没有返回任何内容。

php sql postgresql laravel

3
推荐指数
1
解决办法
5万
查看次数

标签 统计

laravel ×2

laravel-4 ×1

php ×1

postgresql ×1

sql ×1