TableNames
は識別子であるため、一重引用符で引用しないでください。使用したtableNameは予約済みのキーワードではないため、これらの折り返し引用符を削除するだけで済みます。
INSERT INTO student (FirstName, LastName....
何かを一重引用符で囲むと、そのオブジェクトは強制的に文字列リテラルになります。したがって、識別子が一重引用符で囲まれている場合、それは識別子ではなくなったことを意味します。
INSERT INTO
のため、サーバーは例外をスローします 文字列リテラルではなく識別子が必要です。
MySQL予約済みのテーブル名を誤って使用した場合キーワード
、識別子を区切るために一重引用符を使用しないでください。ただし、backticks
。
補足として、クエリはSQL Injection
で脆弱です。
値( s )変数のは外部から来ました。それを防ぐ方法については、以下の記事をご覧ください。 PreparedStatements
を使用する 値を一重引用符で囲むことはできません。