回答編集履歴
3
用語訂正
answer
CHANGED
@@ -26,4 +26,4 @@
|
|
26
26
|
```
|
27
27
|
のようなSQLでの指定で取り出します。
|
28
28
|
|
29
|
-
(tanatさんの御指摘の通り、単純なエスケープではSQL対策として不備があるので、PDOを尊重してプレース
|
29
|
+
(tanatさんの御指摘の通り、単純なエスケープではSQL対策として不備があるので、PDOを尊重してプレースホルダを用いたコードに改善しました。)
|
2
PDO接続を尊重しセキュリティー対策したコードに改良した。
answer
CHANGED
@@ -15,15 +15,15 @@
|
|
15
15
|
を
|
16
16
|
```
|
17
17
|
$siteiid = 1010;
|
18
|
+
|
18
|
-
$sql =
|
19
|
+
$sql = 'SELECT * FROM chatlog WHERE id = :id';
|
20
|
+
$stmt = $dbh->prepare($sql);
|
21
|
+
$stmt->bindValue(':id', $siteiid, PDO::PARAM_INT);
|
22
|
+
$stmt->execute();
|
23
|
+
while( $result = $sth->fetch(PDO::FETCH_ASSOC) ){
|
24
|
+
printf("%d|%d|%d\n", $result['id'], $result['name'], $result['log']);
|
25
|
+
}
|
19
26
|
```
|
20
27
|
のようなSQLでの指定で取り出します。
|
21
|
-
|
28
|
+
|
22
|
-
```
|
23
|
-
$rows = "";
|
24
|
-
|
29
|
+
(tanatさんの御指摘の通り、単純なエスケープではSQL対策として不備があるので、PDOを尊重してプレースフォルダを用いたコードに改善しました。)
|
25
|
-
$rows .= $result['id'].' '.$result['name'].' '.$result['log'].'<br>';
|
26
|
-
}
|
27
|
-
print($rows);
|
28
|
-
```
|
29
|
-
のような形式で取り出します。
|
1
SQLインジェクション対策を補強
answer
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
を
|
16
16
|
```
|
17
17
|
$siteiid = 1010;
|
18
|
-
$sql = "SELECT * from chatlog where id = '".$siteiid."'";
|
18
|
+
$sql = "SELECT * from chatlog where id = '".htmlspecialchars($siteiid)."'";
|
19
19
|
```
|
20
20
|
のようなSQLでの指定で取り出します。
|
21
21
|
もし複数行ある場合には
|