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

質問編集履歴

3

インデントの修正

2018/08/07 04:35

投稿

web_tanaka
web_tanaka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -9,66 +9,59 @@
9
9
 
10
10
  ```
11
11
  <?php
12
+
12
13
  try {
13
- $pdo = new PDO('mysql:host=localhost;dbname=##;charset=utf8','##','##',
14
+ $pdo = new PDO('mysql:host=localhost;dbname=##;charset=utf8', '##', '##',
14
15
  array(PDO::ATTR_EMULATE_PREPARES => false));
15
16
  } catch (PDOException $e) {
16
- exit('データベース接続失敗。'.$e->getMessage());
17
+ exit('データベース接続失敗。'.$e->getMessage());
17
18
  }
18
19
 
20
+ $stmt = $pdo->query('SELECT * FROM model');
21
+ while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
22
+ $ttitle = $row['url'];
23
+ }
19
24
 
20
- $stmt = $pdo->query("SELECT * FROM model");
25
+ require_once 'phpQuery-onefile.php';
21
- while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
22
- $ttitle = $row["url"]; }
23
26
 
24
-
25
-
26
- require_once("phpQuery-onefile.php");
27
-
28
27
  $html = file_get_contents($ttitle);
29
28
 
30
29
  $doc = phpQuery::newDocument($html);
31
-
32
30
 
33
- $test = $doc[".test2 h1"]->text();
31
+ $test = $doc['.test2 h1']->text();
34
32
 
33
+ try {
34
+ // 静的プレースホルダを指定
35
+ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
35
36
 
36
- try{
37
- // 静的プレスホルダ
37
+ // DBエラ発生時は例外投げる設
38
- $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
38
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
39
39
 
40
- // DBエラー発生時は例外を投げる設定
41
- $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
40
+ $stmt = $pdo->prepare('UPDATE model SET status=:status WHERE url=:url');
42
41
 
42
+ //トランザクション処理
43
- $stmt = $pdo->prepare("UPDATE model SET status=:status WHERE url=:url");
43
+ $pdo->beginTransaction();
44
44
 
45
+ try {
46
+ $stmt->bindParam(':status', $test);
45
- //トランザクション処理
47
+ $stmt->bindParam(':url', $ttitle);
46
- $pdo->beginTransaction();
48
+ $stmt->execute();
47
49
 
48
- try{
49
-
50
- $stmt ->bindParam(':status', $test);
51
- $stmt ->bindParam(':url', $ttitle);
52
- $stmt->execute();
53
-
54
- //コミット
50
+ //コミット
55
- $pdo->commit();
51
+ $pdo->commit();
56
-
57
- }catch (PDOException $e) {
52
+ } catch (PDOException $e) {
58
- //ロールバック
53
+ //ロールバック
59
- $pdo->rollback();
54
+ $pdo->rollback();
60
- throw $e; //
55
+ throw $e; //
61
- }
56
+ }
62
- // 接続を閉じる
57
+ // 接続を閉じる
63
- $pdo = null;
58
+ $pdo = null;
64
- }catch (PDOException $e) {
59
+ } catch (PDOException $e) {
65
- // UTF8に文字エンコーディングを変換します
60
+ // UTF8に文字エンコーディングを変換します
66
- echo mb_convert_encoding($e->getMessage(),'UTF-8','SJIS-win');
61
+ echo mb_convert_encoding($e->getMessage(), 'UTF-8', 'SJIS-win');
67
- die();
62
+ die();
68
63
  }
69
64
 
70
-
71
- ?>
72
65
  ```
73
66
 
74
67
  ### 試したこと

2

誤字修正

2018/08/07 04:35

投稿

web_tanaka
web_tanaka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
  PHP初心者です。ちょっと説明が下手ですが、他サイトの指定classの<h1>要素の値を取得をして、DBの値と一致したら特定のカラムのみ全件更新させたいと思っています。
3
3
 
4
4
  ### 発生している問題・エラーメッセージ
5
- プログラムは出来ていますが、全件に更新させたいのですが、なぜかDBの最後のレコードしか表示されません。
5
+ プログラムは出来ていますが、全件に更新させたいのですが、なぜかDBの最後のレコードしか更新されません。
6
6
  サイトのスクレイピングにphpQuery-onefile.phpを利用しています。
7
7
 
8
8
  ### 該当のソースコード

1

誤字修正

2018/08/06 17:00

投稿

web_tanaka
web_tanaka

スコア9

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  ### 前提・実現したいこと
2
- PHP初心者です。ちょっと説明が下手ですが、他サイトの指定classの<h1>要素の値を取得をして、DBの値と一致したら特のカラムのみ全件更新させたいと思っています。
2
+ PHP初心者です。ちょっと説明が下手ですが、他サイトの指定classの<h1>要素の値を取得をして、DBの値と一致したら特のカラムのみ全件更新させたいと思っています。
3
3
 
4
4
  ### 発生している問題・エラーメッセージ
5
5
  プログラムは出来ていますが、全件に更新させたいのですが、なぜかDBの最後のレコードしか表示されません。