我想在Laravel 4中重命名一个表,但不知道该怎么做.
SQL是alter table photos rename to images.如果有一个Eloquent解决方案,我也想知道如何运行原始SQL,因为有时候别无选择.
我正在使用 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)
我对这种方法有两个问题:
如何保护我的应用程序免受 SQL 注入攻击?
如何检查查询是否成功运行?DB::statement 似乎没有返回任何内容。