今までにない奇妙な問題があります。
description
mysqlテーブルに。という名前の列がありますlist_items
。
一部の行では、説明が空であり、一部ではそうではありません。形式はミディアムテキストですが、VARCHAR(1000)のようなものに変更すると同じ問題が発生します。
これは単純なクエリです。
$result=mysql_query("select * from list_items where list_id='$id' order by position desc") or die(mysql_error());
while($iteminfo=mysql_fetch_assoc($result)){
print_r($iteminfo);
}
そしてそれはこのようなものを与えます:
Array (
[id] => 85 [list_id] => 16 [position] => 4
[item] => How To Be Richer Smarter And Better Looking Than Your Parents
[voted_up] => 0 [voted_down] => 0
[small_image] => http://ecx.images-amazon.com/images/I/51tdjl56TwL._SL160_.jpg
[large_image] => http://ecx.images-amazon.com/images/I/51tdjl56TwL.jpg
[asin] => 1591845440 [description] => undefined [author] => Zac Bissonnette
[publish_date] => 2012-04-24 [genre] => )
説明列は、空であるかどうかに関係なく、常に「未定義」です。何か案は?
テーブル構造:
CREATE TABLE IF NOT EXISTS `list_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`list_id` int(11) NOT NULL,
`position` int(11) NOT NULL,
`item` varchar(512) NOT NULL,
`voted_up` int(11) NOT NULL,
`voted_down` int(11) NOT NULL,
`small_image` varchar(128) NOT NULL,
`large_image` varchar(128) NOT NULL,
`asin` varchar(16) NOT NULL,
`description` mediumtext NOT NULL,
`author` varchar(128) NOT NULL,
`publish_date` varchar(16) NOT NULL,
`genre` varchar(128) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=107 ;
var_dumpはこれを返します:
array(13) { ["id"]=> string(2) "87" ["list_id"]=> string(2) "16" ["position"]=> string(1) "2" ["item"]=> string(22) "Game Of Thrones Book 1" ["voted_up"]=> string(1) "1" ["voted_down"]=> string(1) "0" ["small_image"]=> string(61) "http://ecx.images-amazon.com/images/I/51VcGBtiLTL._SL160_.jpg" ["large_image"]=> string(53) "http://ecx.images-amazon.com/images/I/51VcGBtiLTL.jpg" ["asin"]=> string(10) "0553386794" ["description"]=> string(0) "" ["author"]=> string(18) "George R.R. Martin" ["publish_date"]=> string(10) "2011-03-22" ["genre"]=> string(0) "" }
しかし、echo $iteminfo['description']
それでも「未定義」を与えます。