pixtabay apiで遊んでみる その5 DB連携

pixtabay urlをUNIQUEで、テーブルをつくります。

CREATE TABLE img.pixtabay (
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	pixtaurl VARCHAR(255) UNIQUE,
	imgurl VARCHAR(60),
	tags VARCHAR(255)
);

続いて、apiから、画像を取得し、dbに画像のパス・タグを入れます。

$stmt = $dbh -> prepare("INSERT IGNORE INTO pixtabay (pixtaurl, imgurl, tags) VALUES(:pixtaurl, :imgurl, :tags)");

$date = date("Ymt");
$i=0;
foreach($url as $value){
	$data = file_get_contents($value);
    $pass = "img/" .$date. "-" . $i . ".jpeg";
    $stmt->bindParam(':pixtaurl', $url[$i], PDO::PARAM_STR);
    $stmt->bindParam(':imgurl', $pass, PDO::PARAM_STR);
    $stmt->bindParam(':tags', $tags[$i], PDO::PARAM_STR);
    $stmt->execute();
    file_put_contents($pass, $data);
    $i++;
}
?>

検索クエリに一致するタグがある画像パスをDBから取得して表示

 
$query = "アップル";
while($result = $stmt->fetch(PDO::FETCH_ASSOC)){

	if(strpos($result["tags"], $query) !== false){
		$url[] = $result["imgurl"];
	}
}

echo "タグに". $query. "を含む画像<br>";
// var_dump($url);
foreach($url as $value){
	echo "<img src=\"" .$value. "\" width=\"200\" height=\"120\" >";
}
?>

ぎゃーーーー