RSS | コメントなしRSS(コメント無し)
トップ «前の日記(2007年11月15日(Thu)) 最新 次の日記(2007年11月17日(Sat))» 編集

$ ~ati/やる気 < /dev/zero

[ クッキングパパ レシピ検索 | ati's FREE素材集 ]

2007年11月16日(Fri) [長年日記]

_ 入門 JSON 3 -- JSONP とコールバック関数

JSONP (JSON with Padding)というのは JSON のデータフォーマットにちょっとした記述を加えて JavaScript の関数として呼び出せるようにしたものです。

メモメモ。

ここで紹介されてるjsr_class.jsを使って,楽天API経由で取得した書影データを利用できるようにしてみよう。

_ クッキングパパ 単行本-収録エピソード 検索 (2)

クッキングパパ 単行本-収録エピソード 検索に,フリーキーワードによるタイトルの検索機能を付けてみた。

実行するとApacheのプロセスがなんのエラーも吐かずにSegmentation faultで死んでしまって動かない。文字列のワイルドカード検索を入れたのがマズいんであろうことは想像がついたが,直し方が分からんので,まずはPDOのマニュアルを参照。そしたら,例に挙げられるほどの典型的な間違いを犯していたことが発覚↓

例 11. プレースホルダの間違った使用法

<?php
$stmt
= $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));

// プレースホルダは、値全体に対して使用しなければなりません
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>

もうね,まさにこの通りの間違いだったさ orz
で,この例の通りに直して,無事動いた。

_ クッキングパパ 単行本-収録エピソード 検索 (3)

楽天ウェブサービス楽天書籍検索APIを使って,JSONPで書影を出すようにしてみた。

書影表示例

取得したデータへのアクセスはJSONPですんなり出来たんだが,最初,品切商品のデータを取得するのにavailability=0の指定が必要なのに気づかず,品切の巻の番号でテストして「なんでデータを参照できんのだっ?!」と1時間ほどハマる ^^;
この点を修正すると同時に,戻り値のHeader.Statusを参照してデータ取得に成功した(値が'Success'である)場合だけ処理するようにもした。

本日のツッコミ(全1件) [ツッコミを入れる]
_ かとう (2007年11月19日(Mon) 15:13)

この程度の間違いでサーバプロセスを落とすんじゃあ、仕事ではつかえんなぁ PDO.誰かがちょっとしたコーディングミスしただけで落ちるようでは、怖くてチームで1サーバとかで運用するきにならんもの。1人1サーバ使えってことかの〜〜。


トップ «前の日記(2007年11月15日(Thu)) 最新 次の日記(2007年11月17日(Sat))» 編集

人生感意気 功名誰復論

(今日: 昨日:)