[英]Laravel DB::statement CREATE DATABASE can't add parameters (prepared statement?)
我正在使用Laravel 5.3 PHP框架,我需要有關如何使用DB :: statement方法創建數據庫的其他指導,我可以這樣做,但我知道SQL注入的可能性:
DB::statement('CREATE DATABASE new_database_name');
但是我想做這樣的事情:
DB::statement('CREATE DATABASE :db_name', ['db_name' => 'new_database_name']);
我不確定為什么第二個例子不起作用。 我一直在閱讀laravel文檔,這種東西適用於DB :: insert,DB :: select,但是DB :: statement呢
實際上你不能在CREATE或DROP上使用綁定參數。 必須像這樣使用,例如:
DB::statement("CREATE DATABASE {$newDatabase}");
希望這可以幫助
代碼無法工作的可能原因可能是未與數據庫建立連接。 創建新表使用以下代碼段。
DB::getConnection()->statement('CREATE DATABASE :schema', array('schema' => $schemaName));
詳細說明請使用laravel.io上的以下鏈接。 http://laravel.io/forum/09-13-2014-create-new-database-and-tables-on-the-fly
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.