【发布时间】:2012-05-16 15:46:31
【问题描述】:
昨天另一位用户帮助构建了一个通用函数来处理 MySQL 查询。它看起来像这样:
function fetchAll($query) {
$res = mysql_query($query) or trigger_error("db: ".mysql_error()." in ".$query);
$a = array();
if ($res) {
while($row = mysql_fetch_assoc($res)) {
$a[]=$row;
}
}
return $a;
}
为了输出返回的结果,我只需执行以下操作:
$data = fetchAll("SELECT * FROM news_table ORDER BY id LIMIT 10");
foreach ($data as $row) {
echo $row['title'];
}
我的问题与在数组中只有一个结果时输出结果有关。就像显示页面的当前博客文章时一样。我想知道我是否可以在不先调用 foreach 循环的情况下做到这一点?有没有办法只输出数组的第一个结果,因为我不需要循环遍历它。
也许我可以有一个替代函数,而不是上面的 fetchAll() 函数?只输出一行?
干杯,
斯科特
【问题讨论】:
-
为什么不将查询限制为 1 ?
-
并且不要使用直接查询。建造它们。否则不安全。
-
即使我 LIMIT 1,它仍然不会返回值,除非我使用 foreach 循环。 @Corbin,我想知道如何按照您的建议创建一个 fetchOne() 函数!
-
只返回 mysql_fetch_assoc 的值,而不是构建一个数组。我这样说是为了提供帮助,而不是刻薄,但您可能应该考虑重新审视该语言的基础知识。
-
@Corbin,哦,别误会我的意思。我已经使用标准函数十多年了。我一直想尝试使用更简化的方法来获取数据(没有 PDO)。
标签: php mysql database function