[前][次][番号順一覧][スレッド一覧]

mysql:2461

From: Ishida Akio <Ishida Akio <iakio@xxxxxxxxxx>>
Date: Sun, 10 Sep 2000 09:01:57 +0900
Subject: [mysql 02461] Re: エラーの意味

はじめまして。石田@苫小牧市と申します。

Thu, Sep 07, 2000 at 10:19:18PM +0900 において
moeru さん曰く:

> Warning: Unable to jump to row 0 on MySQL result index 4 in 
> /home/httpd/html/sell/item.php3 on line 50
> 
> このindex 4の意味は何でしょうか?
> 
> 
> 上記のエラーは、以下のような処理の時によく起きます。
> 
> $result = mysql_query ("SELECT name FROM item WHERE itemid = '$itemid' limit 1");
> $itemname = mysql_result($result, 0, "name");

4 は、 $result の値だと思います。
エラーの意味としては、 mysql_num_rows($result) した値が 0 より
小さかった、ということでしょう。

> これを以下のように直すと直るのですが
> 
> $item_info = mysql_fetch_array($result);
> $itemname = $item_info["name"];
> 
> 何で、$itemname = mysql_result($result, 0, "name");
> だとだめなのか理解していません。。。

うーん。
ただ、 mysql_query() が 1 行も返さなかった場合、
mysql_result() は、上記のエラーになりますが、
mysql_fetch_array() は空の配列を返すだけで、エラーにはならないのでは?
また、空の array に対して、 $item_info["name"] とアクセスすることも、
エラーにはなりません。

という話ではないですよね。

とりあえず、 mysql_result() を呼ぶ時は、
あらかじめ mysql_num_rows() で、行数を確認してからの方がいいかも。

# あと、参考までに php のバージョンを教えて下さい。
-- 
---------+---------+---------+---------+---------+---------+---------+
Ishida Akio
http://www.pjam.jpweb.net/ishida/

[前][次][番号順一覧][スレッド一覧]

      2455 2000-09-07 22:19 [<moeru@xxxxxxxxxx>  ] エラーの意味                            
      2457 2000-09-08 15:31 ┣["Y. Tsutsui" <tutui@]                                       
      2458 2000-09-08 19:56 ┃┗[<moeru@xxxxxxxxxx>  ]                                     
      2459 2000-09-08 20:04 ┃ ┗["Y. Tsutsui" <tutui@]                                   
      2460 2000-09-08 20:32 ┃  ┗[<moeru@xxxxxxxxxx>  ]                                 
->    2461 2000-09-10 09:01 ┗[Ishida Akio <iakio@x]                                       
      2465 2000-09-11 19:59  ┗[<moeru@xxxxxxxxxx>  ]