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

回答編集履歴

3

追記

2021/01/02 12:14

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -16,4 +16,4 @@
16
16
  ---
17
17
  事前にID等が分かり、IDを変数で指定したい場合は
18
18
  [PDO::prepare](https://www.php.net/manual/ja/pdo.prepare.php)を使ってプレースホルダを使う事で安全に条件指定をすることが出来ます。
19
- 条件となる数値や文字列を文字列連結によってSQLに組み込み、`PDO::query()`で実行することはSQLインジェクションの温床になる可能性が高いので避けるべきです。
19
+ **条件となる数値や文字列を文字列連結によってSQLに組み込み、`PDO::query()`で実行することはSQLインジェクションの温床になる可能性が高いうえ、メリットは特に無いので避けるべきです。**

2

追記

2021/01/02 12:14

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -1,6 +1,8 @@
1
1
  エラーが出るのは
2
2
  `print_r ($result[1]); `
3
3
  の括弧が全角だからじゃないかと思います。
4
+ エラーが出ないコードに`[1]`だけを追加すれば、parseErrorからnoticeに変わると思います。
5
+ 後述の理由で欲しいデータは入っていませんが。
4
6
 
5
7
  文法エラーはIDEやエディタにチェックさせるのが楽なので、`PHP IDE`や`PHP 開発環境`などで検索して効率的な開発環境を構築されることをお勧めします。
6
8
  (質問中に記述されているのがコピペミスであれば、実際にエラーが出ているコードを質問に追記して下さい)

1

追記

2021/01/02 12:12

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -14,4 +14,4 @@
14
14
  ---
15
15
  事前にID等が分かり、IDを変数で指定したい場合は
16
16
  [PDO::prepare](https://www.php.net/manual/ja/pdo.prepare.php)を使ってプレースホルダを使う事で安全に条件指定をすることが出来ます。
17
- (条件となる数値や文字列を文字列連結によってSQLに組み込ことはSQLインジェクションの温床になる可能性が高いので避けるべきです。)
17
+ (条件となる数値や文字列を文字列連結によってSQLに組み込み、`PDO::query()`で実行することはSQLインジェクションの温床になる可能性が高いので避けるべきです。)