我有以下数据库模式,
CREATE TABLE `tz_todo` (
`id` int(8) unsigned NOT NULL auto_increment,
`position` int(8) unsigned NOT NULL default '0',
`text` varchar(255) collate utf8_unicode_ci NOT NULL default '',
`dt_added` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `position` (`position`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
如果我正在编写以下PHP语句,
$query = mysql_query("SELECT * FROM `tz_todo` ORDER BY `position` ASC");
我如何访问$ query中的文本项?
请指导。感谢
更新: 我试过这个,
echo $query['id'];
echo $query['position'];
echo $query['text'];
答案 0 :(得分:3)
尝试打印$ query将不允许访问该信息。必须使用其中一个mysql结果函数:mysql_fetch_assoc(),mysql_result(),mysql_fetch_array(),mysql_fetch_row()等。
这是一个使用mysql_fetch_assoc()访问结果的示例:
while ($row = mysql_fetch_assoc($result)) {
echo $row['id'];
echo $row['position'];
echo $row['text'];
echo $row['dt_added'];
}
最好首先检查是否有任何结果返回,下面是如何做到这一点的示例:
if (!$query) {
//do stuff when there is no data returned
}
注意:从PHP 5.5.0开始,不推荐使用mysql_query,将来会删除它。相反,应使用MySQLi或PDO_MySQL。
答案 1 :(得分:1)
documentation以简单明了的方式涵盖了这一点。 (请注意,建议您远离mysql_query
命令族。)
基本方法是以下列方式迭代结果。
$query = mysql_query( ...
while ($row = mysql_fetch_assoc($query))
{
do something
}