質問編集履歴
3
インデントの修正
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
|
-
|
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
|
-
|
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[
|
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
|
-
|
38
|
+
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
39
39
|
|
40
|
-
// DBエラー発生時は例外を投げる設定
|
41
|
-
|
40
|
+
$stmt = $pdo->prepare('UPDATE model SET status=:status WHERE url=:url');
|
42
41
|
|
42
|
+
//トランザクション処理
|
43
|
-
|
43
|
+
$pdo->beginTransaction();
|
44
44
|
|
45
|
+
try {
|
46
|
+
$stmt->bindParam(':status', $test);
|
45
|
-
|
47
|
+
$stmt->bindParam(':url', $ttitle);
|
46
|
-
|
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
|
-
|
51
|
+
$pdo->commit();
|
56
|
-
|
57
|
-
|
52
|
+
} catch (PDOException $e) {
|
58
|
-
|
53
|
+
//ロールバック
|
59
|
-
|
54
|
+
$pdo->rollback();
|
60
|
-
|
55
|
+
throw $e; //
|
61
|
-
|
56
|
+
}
|
62
|
-
|
57
|
+
// 接続を閉じる
|
63
|
-
|
58
|
+
$pdo = null;
|
64
|
-
}catch (PDOException $e) {
|
59
|
+
} catch (PDOException $e) {
|
65
|
-
|
60
|
+
// UTF8に文字エンコーディングを変換します
|
66
|
-
|
61
|
+
echo mb_convert_encoding($e->getMessage(), 'UTF-8', 'SJIS-win');
|
67
|
-
|
62
|
+
die();
|
68
63
|
}
|
69
64
|
|
70
|
-
|
71
|
-
?>
|
72
65
|
```
|
73
66
|
|
74
67
|
### 試したこと
|
2
誤字修正
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
誤字修正
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の最後のレコードしか表示されません。
|