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

回答編集履歴

3

文章の修正

2019/10/18 02:10

投稿

nessie603
nessie603

スコア4

answer CHANGED
@@ -12,16 +12,16 @@
12
12
 
13
13
     //先ほどのカウント数をfor文に盛り込み、回数分処理を行う
14
14
  try{
15
+ $sql="UPDATE テーブル名 SET fullname=:fullname, age=:age WHERE id=:id";
16
+ $stm=$db->prepare($sql);
15
17
  for($i=0;$i<$count;$i++){
16
18
  //連想配列をarray()を使って作成し、SQL文を実行してしまう
17
19
       $array=array("id"=>"$id[$i]","fullname"=>"$fullname[$i]","age"=>"$age[$i]");
18
- $sql="UPDATE テーブル名 SET fullname=:fullname, age=:age WHERE id=:id";
19
- $stm=$db->prepare($sql);
20
- $stm->bindValue(':id', $array['id'], PDO::PARAM_INT);
20
+ $stm->bindParam(':id', $array['id'], PDO::PARAM_INT);
21
- $stm->bindValue(':fullname', $array['fullname'], PDO::PARAM_STR);
21
+ $stm->bindParam(':fullname', $array['fullname'], PDO::PARAM_STR);
22
- $stm->bindValue(':age', $array['age'], PDO::PARAM_INT);
22
+ $stm->bindParam(':age', $array['age'], PDO::PARAM_INT);
23
- }
24
- $stm->execute();
23
+ $stm->execute();}
24
+
25
25
  }
26
26
  catch(\PDOException $e){
27
27
  echo $e->getMessage();

2

文章の追加

2019/10/18 02:10

投稿

nessie603
nessie603

スコア4

answer CHANGED
@@ -11,6 +11,7 @@
11
11
  $count = count($id);
12
12
 
13
13
     //先ほどのカウント数をfor文に盛り込み、回数分処理を行う
14
+ try{
14
15
  for($i=0;$i<$count;$i++){
15
16
  //連想配列をarray()を使って作成し、SQL文を実行してしまう
16
17
       $array=array("id"=>"$id[$i]","fullname"=>"$fullname[$i]","age"=>"$age[$i]");
@@ -19,8 +20,12 @@
19
20
  $stm->bindValue(':id', $array['id'], PDO::PARAM_INT);
20
21
  $stm->bindValue(':fullname', $array['fullname'], PDO::PARAM_STR);
21
22
  $stm->bindValue(':age', $array['age'], PDO::PARAM_INT);
23
+ }
22
24
  $stm->execute();
23
25
  }
26
+ catch(\PDOException $e){
27
+ echo $e->getMessage();
28
+ }
24
29
       
25
30
 
26
31
  ?>

1

文章の追加

2019/10/17 13:12

投稿

nessie603
nessie603

スコア4

answer CHANGED
@@ -27,4 +27,5 @@
27
27
  ```
28
28
  とりあえず、これでいけましたが、まだ不完全なところはあるかもしれません。
29
29
  (┣¨初心者なもので....)
30
+ より効率よく処理を高速化させる方法がある気がしており、このやり方だと遅いのかもしれません。。。
30
31
  ひとまず解決とさせていただきますが、他にも方法はあると思いますので、ご提案ある方いらっしゃいましたらよろしくお願いいたします。