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

回答編集履歴

3

修正

2019/05/25 05:44

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -29,4 +29,9 @@
29
29
 
30
30
  あと細かいのですが・・・・
31
31
  「PHPコードだけどそれ以降何もない」のであれば`?>`はないほうがいいです。
32
- 改行とかスペースとか何かで入ってしまえば画面に出力されてしまってそれが思わぬ問題を引き起こすこともあるので。
32
+ 改行とかスペースとか何かで入ってしまえば画面に出力されてしまってそれが思わぬ問題を引き起こすこともあるので。
33
+
34
+ 追記:
35
+ m6uさんがdbconnect.phpの改修内容記載してくれていますが、
36
+ DB接続時に[エラーオプション](https://www.php.net/manual/ja/pdo.error-handling.php)は必ず設定しておいてください。
37
+ - [PHPでデータベースに接続するときのまとめ#接続後にオプションを指定](https://qiita.com/mpyw/items/b00b72c5c95aac573b71#%E6%8E%A5%E7%B6%9A%E5%BE%8C%E3%81%AB%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%8C%87%E5%AE%9A)

2

修正

2019/05/25 05:44

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -1,6 +1,8 @@
1
1
  実行されているはずのSQLを直にDBに対して実行してみた場合はどうでしょうか?
2
2
  基本的な流れとしては、プログラムから実行する前にDBに対して実行します。
3
3
  DBもPHPからすると外部サービスなので、直に実行して実行できないものはプログラムから実行しても当然できません。
4
+ PHPから実行するときもがっつりコードを組んでから実行するのではなく「こういう値が来るはず」というのを固定値で埋め込んで実行してそれが想定通り動いてからがっつり組みます。
5
+ 必要最小限の処理だけを入れたミニマムコードですね。ミニマムコードで動かないものはそれも当然全体ロジックを組んでも動きません。
4
6
 
5
7
  あとは、DB接続時だけではなく実行時にもきちんとExceptionを拾うようにしてください。
6
8
  特にINSERT,UPDATE,DELETEのようにDBに影響がある処理を行うときは、トランザクション開始~SQL実行~コミット/ロールバックする流れを作るよう強くススメます。

1

修正

2019/05/25 05:08

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  実行されているはずのSQLを直にDBに対して実行してみた場合はどうでしょうか?
2
- 基本的な流れとしては、プログラム実行する前にDBに実行します。
2
+ 基本的な流れとしては、プログラムから実行する前にDBに対して実行します。
3
3
  DBもPHPからすると外部サービスなので、直に実行して実行できないものはプログラムから実行しても当然できません。
4
4
 
5
5
  あとは、DB接続時だけではなく実行時にもきちんとExceptionを拾うようにしてください。
@@ -21,7 +21,10 @@
21
21
  }
22
22
 
23
23
  ```
24
+ できれば何もせずheader()でリダイレクトさせるのではなく、
25
+ 「完了しました」などメッセージを画面に出したほうが安全とは思います。
24
26
 
27
+
25
28
  あと細かいのですが・・・・
26
29
  「PHPコードだけどそれ以降何もない」のであれば`?>`はないほうがいいです。
27
- 改行とかスペースとか何かで入てしまえば画面に出力されてしまってそれが思わぬ問題を引き起こすこともあるので。
30
+ 改行とかスペースとか何かで入てしまえば画面に出力されてしまってそれが思わぬ問題を引き起こすこともあるので。