質問編集履歴

3

インデントの修正

2018/08/07 04:35

投稿

web_tanaka
web_tanaka

スコア9

test CHANGED
File without changes
test CHANGED
@@ -20,37 +20,35 @@
20
20
 
21
21
  <?php
22
22
 
23
+
24
+
23
25
  try {
24
26
 
25
- $pdo = new PDO('mysql:host=localhost;dbname=##;charset=utf8','##','##',
27
+ $pdo = new PDO('mysql:host=localhost;dbname=##;charset=utf8', '##', '##',
26
28
 
27
29
  array(PDO::ATTR_EMULATE_PREPARES => false));
28
30
 
29
31
  } catch (PDOException $e) {
30
32
 
31
- exit('データベース接続失敗。'.$e->getMessage());
33
+ exit('データベース接続失敗。'.$e->getMessage());
32
34
 
33
35
  }
34
36
 
35
37
 
36
38
 
39
+ $stmt = $pdo->query('SELECT * FROM model');
37
40
 
41
+ while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
38
42
 
39
- $stmt = $pdo->query("SELECT * FROM model");
43
+ $ttitle = $row['url'];
40
44
 
41
- while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
42
-
43
- $ttitle = $row["url"]; }
45
+ }
44
46
 
45
47
 
46
48
 
49
+ require_once 'phpQuery-onefile.php';
47
50
 
48
51
 
49
-
50
-
51
- require_once("phpQuery-onefile.php");
52
-
53
-
54
52
 
55
53
  $html = file_get_contents($ttitle);
56
54
 
@@ -58,87 +56,75 @@
58
56
 
59
57
  $doc = phpQuery::newDocument($html);
60
58
 
59
+
60
+
61
-
61
+ $test = $doc['.test2 h1']->text();
62
62
 
63
63
 
64
64
 
65
+ try {
66
+
67
+ // 静的プレースホルダを指定
68
+
65
- $test = $doc[".test2 h1"]->text();
69
+ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
66
70
 
67
71
 
68
72
 
73
+ // DBエラー発生時は例外を投げる設定
69
74
 
70
-
71
- try{
72
-
73
- // 静的プレースホルダを指定
74
-
75
- $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
75
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
76
76
 
77
77
 
78
78
 
79
- // DBエラー発生時は例外を投げる設定
80
-
81
- $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
79
+ $stmt = $pdo->prepare('UPDATE model SET status=:status WHERE url=:url');
82
80
 
83
81
 
84
82
 
83
+ //トランザクション処理
84
+
85
- $stmt = $pdo->prepare("UPDATE model SET status=:status WHERE url=:url");
85
+ $pdo->beginTransaction();
86
86
 
87
87
 
88
88
 
89
- //トランザクション処理
89
+ try {
90
90
 
91
+ $stmt->bindParam(':status', $test);
92
+
93
+ $stmt->bindParam(':url', $ttitle);
94
+
91
- $pdo->beginTransaction();
95
+ $stmt->execute();
92
96
 
93
97
 
94
98
 
95
- try{
99
+ //コミット
96
100
 
97
-
101
+ $pdo->commit();
98
102
 
99
- $stmt ->bindParam(':status', $test);
103
+ } catch (PDOException $e) {
100
104
 
101
- $stmt ->bindParam(':url', $ttitle);
105
+ //ロールバック
102
106
 
103
- $stmt->execute();
107
+ $pdo->rollback();
104
108
 
109
+ throw $e; //
105
110
 
111
+ }
106
112
 
107
- //コミット
113
+ // 接続を閉じる
108
114
 
109
- $pdo->commit();
115
+ $pdo = null;
110
116
 
117
+ } catch (PDOException $e) {
111
118
 
119
+ // UTF8に文字エンコーディングを変換します
112
120
 
113
- }catch (PDOException $e) {
121
+ echo mb_convert_encoding($e->getMessage(), 'UTF-8', 'SJIS-win');
114
122
 
115
- //ロールバック
116
-
117
- $pdo->rollback();
118
-
119
- throw $e; //
120
-
121
- }
122
-
123
- // 接続を閉じる
124
-
125
- $pdo = null;
126
-
127
- }catch (PDOException $e) {
128
-
129
- // UTF8に文字エンコーディングを変換します
130
-
131
- echo mb_convert_encoding($e->getMessage(),'UTF-8','SJIS-win');
132
-
133
- die();
123
+ die();
134
124
 
135
125
  }
136
126
 
137
127
 
138
-
139
-
140
-
141
- ?>
142
128
 
143
129
  ```
144
130
 

2

誤字修正

2018/08/07 04:35

投稿

web_tanaka
web_tanaka

スコア9

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
8
 
9
- プログラムは出来ていますが、全件に更新させたいのですが、なぜかDBの最後のレコードしか表示されません。
9
+ プログラムは出来ていますが、全件に更新させたいのですが、なぜかDBの最後のレコードしか更新されません。
10
10
 
11
11
  サイトのスクレイピングにphpQuery-onefile.phpを利用しています。
12
12
 

1

誤字修正

2018/08/06 17:00

投稿

web_tanaka
web_tanaka

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- PHP初心者です。ちょっと説明が下手ですが、他サイトの指定classの<h1>要素の値を取得をして、DBの値と一致したら特のカラムのみ全件更新させたいと思っています。
3
+ PHP初心者です。ちょっと説明が下手ですが、他サイトの指定classの<h1>要素の値を取得をして、DBの値と一致したら特のカラムのみ全件更新させたいと思っています。
4
4
 
5
5
 
6
6