回答編集履歴
5
見直し
answer
CHANGED
@@ -3,27 +3,30 @@
|
|
3
3
|
[PHP: PDOStatement::bindValue - Manual](http://php.net/manual/ja/pdostatement.bindvalue.php)
|
4
4
|
```php
|
5
5
|
try{
|
6
|
-
$d = new PDO("mysql:host=localhost;dbname=db;charset=utf8mb4","root","1234",[
|
6
|
+
$d = new PDO("mysql:host=localhost;dbname=db;charset=utf8mb4","root","1234",[
|
7
|
-
|
7
|
+
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
8
|
-
|
8
|
+
PDO::ATTR_EMULATE_PREPARES => false,
|
9
|
-
]);
|
9
|
+
]);
|
10
10
|
print "接続成功<br>";
|
11
|
+
$d->beginTransaction(); // トランザクション開始
|
12
|
+
|
13
|
+
$s = $d->prepare("INSERT INTO form1 (`namae`,`nen`,`sex`,`jusyo`,`tel`,`mail`,`index`,`toi`) values (:namae,:nen,:sex,:jusyo,:tel,:mail,:index,:toi)"); // SQLインジェクション対策にはprepare
|
14
|
+
$s->bindValue(':namae', $namae, PDO::PARAM_STR);
|
15
|
+
$s->bindValue(':nen', $nen, PDO::PARAM_STR);
|
16
|
+
$s->bindValue(':sex', $sex, PDO::PARAM_STR);
|
17
|
+
$s->bindValue(':jusyo', $jusyo, PDO::PARAM_STR);
|
18
|
+
$s->bindValue(':tel', $tel, PDO::PARAM_STR);
|
19
|
+
$s->bindValue(':mail', $mail, PDO::PARAM_STR);
|
20
|
+
$s->bindValue(':index', $index, PDO::PARAM_STR);
|
21
|
+
$s->bindValue(':toi', $toi, PDO::PARAM_STR);
|
22
|
+
$s->execute();
|
23
|
+
|
24
|
+
$d->commit(); // コミットも忘れずに
|
25
|
+
|
11
26
|
} catch (PDOException $e) {
|
12
27
|
exit('データベース接続失敗。'.$e->getMessage());
|
13
28
|
}
|
14
29
|
|
15
|
-
$s = $d->prepare("INSERT INTO form1 (`namae`,`nen`,`sex`,`jusyo`,`tel`,`mail`,`index`,`toi`) values (:namae,:nen,:sex,:jusyo,:tel,:mail,:index,:toi)"); // SQLインジェクション対策にはprepare
|
16
|
-
$s->bindValue(':namae', $namae, PDO::PARAM_STR);
|
17
|
-
$s->bindValue(':nen', $nen, PDO::PARAM_STR);
|
18
|
-
$s->bindValue(':sex', $sex, PDO::PARAM_STR);
|
19
|
-
$s->bindValue(':jusyo', $jusyo, PDO::PARAM_STR);
|
20
|
-
$s->bindValue(':tel', $tel, PDO::PARAM_STR);
|
21
|
-
$s->bindValue(':mail', $mail, PDO::PARAM_STR);
|
22
|
-
$s->bindValue(':index', $index, PDO::PARAM_STR);
|
23
|
-
$s->bindValue(':toi', $toi, PDO::PARAM_STR);
|
24
|
-
$s->execute();
|
25
|
-
|
26
|
-
$d->commit(); // コミットも忘れずに
|
27
30
|
```
|
28
31
|
|
29
32
|
みたいな書き方になるかと。
|
4
加筆修正
answer
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
prepare()→bindValue()→execute()の繰り返しをして、
|
2
|
+
最後にcommit()しよう。
|
1
3
|
[PHP: PDOStatement::bindValue - Manual](http://php.net/manual/ja/pdostatement.bindvalue.php)
|
2
4
|
```php
|
3
5
|
try{
|
3
加筆修正
answer
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
[PHP: PDOStatement::bindValue - Manual](http://php.net/manual/ja/pdostatement.bindvalue.php)
|
2
2
|
```php
|
3
3
|
try{
|
4
|
-
$d = new PDO("mysql:host=localhost;dbname=db","root","1234"
|
4
|
+
$d = new PDO("mysql:host=localhost;dbname=db;charset=utf8mb4","root","1234",[
|
5
|
+
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
6
|
+
PDO::ATTR_EMULATE_PREPARES => false,
|
7
|
+
]);
|
5
8
|
print "接続成功<br>";
|
6
9
|
} catch (PDOException $e) {
|
7
10
|
exit('データベース接続失敗。'.$e->getMessage());
|
@@ -22,5 +25,6 @@
|
|
22
25
|
```
|
23
26
|
|
24
27
|
みたいな書き方になるかと。
|
28
|
+
接続時に例外をスローするようにしたのと、utf8接続指定したのと。
|
25
29
|
カラム名をバッククォートで囲むと、予約語とかぶっても安心。
|
26
30
|
もしも数値型のカラムの場合は、PDO::PARAM_STRじゃなくPDO::PARAM_INTを使います。
|
2
加筆修正
answer
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
exit('データベース接続失敗。'.$e->getMessage());
|
8
8
|
}
|
9
9
|
|
10
|
-
$s = $d->prepare("INSERT INTO form1 (`namae`,`nen`,`sex`,`jusyo`,`tel`,`mail`,`index`,`toi`) values (:namae,:nen,:sex,:jusyo,:tel,:mail,:index,:toi)");
|
10
|
+
$s = $d->prepare("INSERT INTO form1 (`namae`,`nen`,`sex`,`jusyo`,`tel`,`mail`,`index`,`toi`) values (:namae,:nen,:sex,:jusyo,:tel,:mail,:index,:toi)"); // SQLインジェクション対策にはprepare
|
11
11
|
$s->bindValue(':namae', $namae, PDO::PARAM_STR);
|
12
12
|
$s->bindValue(':nen', $nen, PDO::PARAM_STR);
|
13
13
|
$s->bindValue(':sex', $sex, PDO::PARAM_STR);
|
@@ -17,6 +17,8 @@
|
|
17
17
|
$s->bindValue(':index', $index, PDO::PARAM_STR);
|
18
18
|
$s->bindValue(':toi', $toi, PDO::PARAM_STR);
|
19
19
|
$s->execute();
|
20
|
+
|
21
|
+
$d->commit(); // コミットも忘れずに
|
20
22
|
```
|
21
23
|
|
22
24
|
みたいな書き方になるかと。
|
1
加筆修正
answer
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
exit('データベース接続失敗。'.$e->getMessage());
|
8
8
|
}
|
9
9
|
|
10
|
-
$s = $d->prepare("INSERT INTO form1 (namae,nen,sex,jusyo,tel,mail,index,toi) values (:namae,:nen,:sex,:jusyo,:tel,:mail,:index,:toi)");
|
10
|
+
$s = $d->prepare("INSERT INTO form1 (`namae`,`nen`,`sex`,`jusyo`,`tel`,`mail`,`index`,`toi`) values (:namae,:nen,:sex,:jusyo,:tel,:mail,:index,:toi)");
|
11
11
|
$s->bindValue(':namae', $namae, PDO::PARAM_STR);
|
12
12
|
$s->bindValue(':nen', $nen, PDO::PARAM_STR);
|
13
13
|
$s->bindValue(':sex', $sex, PDO::PARAM_STR);
|
@@ -20,4 +20,5 @@
|
|
20
20
|
```
|
21
21
|
|
22
22
|
みたいな書き方になるかと。
|
23
|
+
カラム名をバッククォートで囲むと、予約語とかぶっても安心。
|
23
24
|
もしも数値型のカラムの場合は、PDO::PARAM_STRじゃなくPDO::PARAM_INTを使います。
|