回答編集履歴
4
文章の軽微修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
ただこれだと1行が長くなってしまいます。そんなときは [sprintf()](http://php.net/manual/ja/function.sprintf.php) 関数を使うと見通しがよくなります。
|
17
|
+
ただこれだと1行が長くなってしまいますし、記号だらけで正直見づらいですよね。そんなときは [sprintf()](http://php.net/manual/ja/function.sprintf.php) 関数を使うと見通しがよくなります。
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
|
62
62
|
|
63
|
-
`?` と書いた部分に、bindValue() 関数によって指定された文字がセットされます。
|
63
|
+
`?` と書いた部分に、bindValue() 関数によって指定された文字がセットされます。ちなみに ? をシングルクオートで囲んでいませんが、これは必要なエスケープ処理すべてをPDOが自動で行ってくれるためです。
|
64
64
|
|
65
65
|
|
66
66
|
|
3
波括弧について追記
test
CHANGED
@@ -1,4 +1,20 @@
|
|
1
|
+
まずSQLのことは抜きして一般論を話します。PHPで複雑な表現の変数を文字列の中に展開したいときは主に2つの方法があります。
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
1つめは[波括弧構文](http://php.net/manual/ja/language.types.string.php#language.types.string.parsing.complex)を使うことです。変数の表記を波括弧 `{}` で囲むことによって、これは変数名を表しているんだということをPHPに明確に伝えることができます。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```php
|
10
|
+
|
11
|
+
$SQL = "SELECT * FROM Table Where CompanyID = '{$arrA[0]['CompanyID']}' ";
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
|
16
|
+
|
1
|
-
|
17
|
+
ただこれだと1行が長くなってしまいます。そんなときは [sprintf()](http://php.net/manual/ja/function.sprintf.php) 関数を使うと見通しがよくなります。
|
2
18
|
|
3
19
|
|
4
20
|
|
2
誤字修正
test
CHANGED
File without changes
|
1
文章の軽微修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
まず
|
1
|
+
まずSQLのことは抜きして一般論を話します。PHPで複雑な表現の変数を文字列の中に展開したい場合は、[sprintf()](http://php.net/manual/ja/function.sprintf.php) 関数を使うのが手軽で、かつコードの見通しも良くなります。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -24,11 +24,11 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
つづいてこれをSQL文として見た場合、変数をSQL文に直接埋め込むのではなく、**プリペアドステートメント** という方法を使ってセットす
|
27
|
+
つづいてこれをSQL文として見た場合、セキュリティの観点から変数をSQL文に直接埋め込むのではなく、**プリペアドステートメント** という方法を使ってセットことを強くおすすめします。
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
PDOというPHP標準のライブラリを使った場合はこんなコードになります:
|
31
|
+
例えばPDOというPHP標準のライブラリを使った場合はこんなコードになります:
|
32
32
|
|
33
33
|
|
34
34
|
|
@@ -48,4 +48,4 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
|
51
|
+
直接変数を埋め込むと、場合によってはSQLインジェクションという脆弱性が出来てしまい、データの破壊・改ざん、個人情報漏洩などの大事故につながりますので気をつけて下さい。
|