-4

我有以下数据库架构,

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'];
4

2 回答 2

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
}

注意: mysql_query 自 PHP 5.5.0 起已弃用,将来将被删除。相反,应该使用MySQLiPDO_MySQL 。

于 2013-06-20T15:29:05.160 回答
1

文档中以相当简单的术语对此进行了介绍。(请注意,建议您远离mysql_query命令系列。)

基本方法是按以下方式迭代结果。

$query = mysql_query( ...
while ($row = mysql_fetch_assoc($query))
{
  do something
}
于 2013-06-20T15:29:19.440 回答