質問するログイン新規登録

回答編集履歴

1

コードレビュー追記

2015/11/01 08:22

投稿

shiena
shiena

スコア1827

answer CHANGED
@@ -21,4 +21,17 @@
21
21
  参考:
22
22
  ・[今夜分かるSQLインジェクション対策](http://www.atmarkit.co.jp/ait/articles/0611/02/news127.html)
23
23
  ・[prepareStatementの使用](http://www.javadrive.jp/servlet/database/index10.html)
24
- 更に[sql2o](http://www.sql2o.org/)のようなDBアクセスを簡単に書けるライブラリを利用するとコード量と手間を減らせます。
24
+ 更に[sql2o](http://www.sql2o.org/)のようなDBアクセスを簡単に書けるライブラリを利用するとコード量と手間を減らせます。
25
+
26
+ ---
27
+ コードレビュー追記
28
+
29
+ insertの時にtitleのサイズを越えているとエラーが発生します。
30
+ 事前にサイズチェックする方がよいです。
31
+
32
+ SELECTはinsertで追加したレコードのPKを取得していると思われます。
33
+ このクエリでは同じtitleのレコードが既に存在した場合に古いレコードのroom_idを取得してしまいます。
34
+ 直前にinsertしたレコードのPKを取得するならSELECT last_insert_id()が適切です。
35
+
36
+ create tableは同じテーブル名が存在するとエラーが発生します。
37
+ おそらくroom_idはauto incrementされたものなので問題ないと思いますが、create table if not existsで確実にエラーが発生しないコードにする方がよいです。