pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

PHP:データベースにPDO接続で読み出し

PHPでDOMを使いサイトの更新状況を取得したいと妄想しています。RSSが目標とするサイトにない場合、自力でHTMLタグのなかから必要なのをつかむという作業が必要です。WEBスクレイピングともいうようなことです。

WEBスクレイピング:ネット上に公開された情報は一応セーフ。ただし…

Webスクレイピングの法律周りの話をしよう! - Qiita」にあるように、著作権や個人情報保護の点から注意する必要があります。また、SNSのように会員だけが閲覧できる状態の情報を、一般公開のように利用するのは、NG…。

RSS二次利用を前提としたものですからヨシとして、問題はそれが無い場合。DOM解析して取得した情報を自由に使えるか、という…。

PDO接続で、MySQLのテーブルを読むことができた~

以下のPHPは実際には動かないのですが、耄碌進行中の爺の覚書・備忘録です。間違いなどがあったら教えてくださいませ~。

<html>
<body>
<?php
//db接続
define('DB_SETTING',ホスト名など接続に必要な文字列);
 //↑MySQL接続に必要な文字列を「定数」として作成
 //↓try{}catch{}でひとくくり
try{
	$pdo = new PDO(DB_SETTING); //「定数」をセットしPDO稼働?
      //↓エラー処理のおまじない
	$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      //↓SQLインジェクション対策のおまじない?
	$pdo -> setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
	  //↓「目的DBのテーブル名」は「定数」でセットしたDBの中にあるテーブル名
	$stmt = $pdo->query("SELECT * FROM 目的DBのテーブル名");
      //↑$pdoのquery(問い合わせ)で、目的テーブルの全部読む準備よろしく、
	//db読み込み
      //↓while(){}までがひとくくりで、テーブル最後まで読んでくれる
	while($row = $stmt->fetch(PDO::FETCH_NUM)){
      //↑$stmtでPDO使って1回読んだ内容をFETCH_NUM(添字数基準)で$row配列に入れてね
		//db内容表示
           //foreach(){}でひとくくりの循環。$row[X]のX-1回繰り返す
		foreach($row as $value){
           //↑($row as $value)を($row as $value => $content)とし
           //↓echo $content との例もOKみたい。キーと値の関係、爺には不明…
			echo $value."<br />";
		}
	}
  //↓データベース接続でエラーがおこたっ時に処理
} catch(PDOException $e){
	echo "error: ".$e->getMessage();
}
//db切断
$pdo = null;
?>
</body>
</html>