我正在使用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
怎么样?答案 0 :(得分:2)
实际上你不能在CREATE或DROP上使用绑定参数。必须像那样使用:
DB::statement("CREATE DATABASE {$newDatabase}");
希望这有帮助
答案 1 :(得分:0)
您的代码无法工作的可能原因可能是未与数据库建立连接。 创建新表使用以下代码段。
DB :: getConnection() - >语句(' CREATE DATABASE:schema',array(' schema' => $ schemaName));
详细说明请使用laravel.io上的以下链接。 http://laravel.io/forum/09-13-2014-create-new-database-and-tables-on-the-fly