回答編集履歴

3

文章の修正

2019/10/18 02:10

投稿

nessie603
nessie603

スコア4

test CHANGED
@@ -26,25 +26,25 @@
26
26
 
27
27
  try{
28
28
 
29
+ $sql="UPDATE テーブル名 SET fullname=:fullname, age=:age WHERE id=:id";
30
+
31
+ $stm=$db->prepare($sql);
32
+
29
33
  for($i=0;$i<$count;$i++){
30
34
 
31
35
  //連想配列をarray()を使って作成し、SQL文を実行してしまう
32
36
 
33
37
       $array=array("id"=>"$id[$i]","fullname"=>"$fullname[$i]","age"=>"$age[$i]");
34
38
 
35
- $sql="UPDATE テーブル名 SET fullname=:fullname, age=:age WHERE id=:id";
39
+ $stm->bindParam(':id', $array['id'], PDO::PARAM_INT);
36
40
 
37
- $stm=$db->prepare($sql);
41
+ $stm->bindParam(':fullname', $array['fullname'], PDO::PARAM_STR);
38
42
 
39
- $stm->bindValue(':id', $array['id'], PDO::PARAM_INT);
43
+ $stm->bindParam(':age', $array['age'], PDO::PARAM_INT);
40
44
 
41
- $stm->bindValue(':fullname', $array['fullname'], PDO::PARAM_STR);
45
+ $stm->execute();}
42
46
 
43
- $stm->bindValue(':age', $array['age'], PDO::PARAM_INT);
47
+
44
-
45
- }
46
-
47
- $stm->execute();
48
48
 
49
49
  }
50
50
 

2

文章の追加

2019/10/18 02:10

投稿

nessie603
nessie603

スコア4

test CHANGED
@@ -24,6 +24,8 @@
24
24
 
25
25
     //先ほどのカウント数をfor文に盛り込み、回数分処理を行う
26
26
 
27
+ try{
28
+
27
29
  for($i=0;$i<$count;$i++){
28
30
 
29
31
  //連想配列をarray()を使って作成し、SQL文を実行してしまう
@@ -40,7 +42,15 @@
40
42
 
41
43
  $stm->bindValue(':age', $array['age'], PDO::PARAM_INT);
42
44
 
45
+ }
46
+
43
47
  $stm->execute();
48
+
49
+ }
50
+
51
+ catch(\PDOException $e){
52
+
53
+ echo $e->getMessage();
44
54
 
45
55
  }
46
56
 

1

文章の追加

2019/10/17 13:12

投稿

nessie603
nessie603

スコア4

test CHANGED
@@ -56,4 +56,6 @@
56
56
 
57
57
  (┣¨初心者なもので....)
58
58
 
59
+ より効率よく処理を高速化させる方法がある気がしており、このやり方だと遅いのかもしれません。。。
60
+
59
61
  ひとまず解決とさせていただきますが、他にも方法はあると思いますので、ご提案ある方いらっしゃいましたらよろしくお願いいたします。