私はLaravel 5.3のPHPフレームワークを使用しており、DB :: statementメソッドを使用してデータベースを作成する方法に関する追加のガイダンスが必要です。このように、私はSQLインジェクションの可能性を認識してい:Laravel DB :: statement CREATE DATABASEはパラメータを追加できません(プリペインドステートメント?)
DB::statement('CREATE DATABASE new_database_name');
しかし、私はこのような何かをしたい:
DB::statement('CREATE DATABASE :db_name', ['db_name' => 'new_database_name']);
私は、なぜ第二の例のdoesntの仕事はよく分かりません。私はlaravelのドキュメントを読んできましたが、このようなことはDB :: insert、DB :: select、で動作しますが、DB :: statementについてはどうですか?
を助け
希望のように使用することがありますか?あなたのMySQLユーザは、新しいデータベースを追加するための正しいアクセス権を持っていますか? Laravelのログ、PHPのログ、MySQLのログを確認し、ここに詳細を投稿してください。 – Yani
それは本当に奇妙です。私はまた、バインディングで2番目の例を試してみると、構文エラーが発生します。バインディングしかし最初のものはうまく動作します。以下のgetConnection()の答えは、少なくとも5.2+では機能しません。少なくとも、それは古すぎます。 –
申し訳ありませんが、私は答えを見つけました。データベース名の変数を指定することはできません。なぜなら、それはそこにあるものではないからです。詳細については、http://stackoverflow.com/questions/17590594/create-database-with-pdo-in-phpを参照してください。 –