アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP5.1.6を使用しています。
次のスクリプトを書きましたが、データが取得できません。

$conn_id = mysql_connect("localhost","***","***") or die('Error connecting to MySQL');
mysql_select_db('***',$conn_id);

$query ="SELECT abcd,efgh from XYZ where name='taro'";
$result = mysql_query($query,$conn_id) or die($query.'failed('.mysql_error().')');
$ydata = array();
$xdata = array();
while($row = mysql_fetch_array($result)){  ← 11行目
array_push($ydata, $row->efgh);   ← 12行目
array_push($xdata, $row->abcd);   ← 13行目
}

エラーログを見ると、
PHP Notice: Trying to get property of non-object in /***/***/****.php on line 12
PHP Notice: Trying to get property of non-object in /***/***/****.php on line 13
となっています。
var_dump($row) 句を入れ、ブラウザから見ると、当然ながら(?)bool(false) と表示されます。
11行目の mysql_fetch_array を mysql_fetch_object に入れ換えて
while($row = mysql_fetch_object($result)){ としても結果は変わりません。
リファレンスマニュアルやサンプルを参照して種々手直ししましたが、今ひとつ正解に辿り着けません。

データを取得して配列に入れるには、どのように修正すれば良いか、教えて頂けませんでしょうか。

A 回答 (1件)

確認ですが、


var_dump($result)を確認してみたらそれはresourceになりますか?

一度、$ydata/xdataを置いておいて、
$dataを用意して、


while($row = mysql_fetch_array($result)){
array_push($data, $row);
}

として、
var_dump、又はprint_rにて、$dataに含まれている値がどうなっているかを確認してみてください。

これで、連想配列のキーとなっているフィールド名が正常に取得できているかなど、切り分けが出来ると思います。

この回答への補足

ご指導ありがとうございます。
(土・日プログラミングのため、) レスポンスが遅くなっており申し訳ありません。
取り敢えず中間のご報告をします。

var_dump($result); の結果は resource(3) of type (mysql result)
となって、データは取得できていると思います。
$dataを用意して行うテストは、今度の土・日の休日に行い、ご報告します。
その節は、お手数をかけますが、またご示唆を頂けると有難いと思っています。

補足日時:2009/06/04 08:18
    • good
    • 0
この回答へのお礼

ご示唆のお陰様で問題の方向性が分かってきた気がします。
問題のありかを探る手がかりは掴めたと思います。
しかし、早朝から取り組んでいますが、解決できません。
一旦、締め切らせて頂き、あらためて再質問をさせて頂くことに致します。

お礼日時:2009/06/06 18:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!