首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysql_query和mysql_fetch_array

使用mysql_query和mysql_fetch_array
EN

Stack Overflow用户
提问于 2009-11-13 07:21:21
回答 3查看 3K关注 0票数 2

我试图找出从我的数据库中获取数据的正确方法。这两种方法都有效,但有什么不同?一个深入的解释?

代码语言:javascript
复制
$sql = mysql_query("SELECT * FROM _$setprofile");
while($row = mysql_fetch_array($sql)) {
    $username = $row['user'];
    $password = $row['pass'];
    echo "$username:$password";
}

下面的函数..。

代码语言:javascript
复制
$sql = mysql_query("SELECT user,pass FROM _$setprofile");
while($row = mysql_fetch_row($sql)) {
    echo "$row[0]:$row[1]";
}

这是我一直想知道的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-13 07:33:05

区别是在第一个例子中重新分配变量。但你可以说:

代码语言:javascript
复制
while(list($username, $password) = mysql_fetch_array($sql)) {
    echo "$username:$password";
}

或者你可以拿出一个哈希

代码语言:javascript
复制
while($row = mysql_fetch_assoc($sql)) {
    echo "{$row['username']}:{$row['password']}";
}

正确的方法取决于应用程序或您的偏好,我个人避免数字索引数组,除非我特别需要它们。谁想要保留一个心理标签,哪些数据在哪个索引中?

票数 4
EN

Stack Overflow用户

发布于 2009-11-13 07:31:10

不同之处在于,fetch_array提取一个包含数值索引和关联索引的数组(除非您提供了一个额外的选项来告诉它其他情况),而fetch_row只获取数值索引,而fetch_assoc只获取关联索引。通常,你不想两者兼得。

使用fetch_assoc而不是fetch_array -这只会为您提供一个具有关联索引的数组。这意味着它将运行得更快一些(必须少做一些工作),但是代码也同样清晰。

从功能的角度来看,差别是最小的。但是,前者存在的问题是,您从数据库中获取的比所需的更多(SELECT *)。一般建议不要选择比实际需要的更多。

票数 3
EN

Stack Overflow用户

发布于 2009-11-13 07:35:33

内部没有太大的差别。序号和列名在MySQL客户端API中的结果集元数据中都是可用的,不管如何。

关于使用,在不同的情况下两者都可以方便。按名称引用列更有帮助作用,结果是(半)自文档化代码,允许您更改查询中列的位置或数目,而不破坏代码等等。

但按顺序取有时也是一只手。例如:

代码语言:javascript
复制
SELECT u.name, d.name FROM user u JOIN department d USING (dept_id)

现在,结果集中有两个名称相同的列。如果获取关联数组,则其中一个覆盖另一个数组,因为assoc数组每个键只能有一个值。因此,$row["name"]是其中之一,您不一定知道它将是哪一个。

代码语言:javascript
复制
SELECT d.name, COUNT(*) FROM user u JOIN department d USING (dept_id) GROUP BY dept_id

现在您有了一个没有别名的列,根据您使用的RDBMS品牌,它可以自动创建一个看起来很有趣的别名,或者将整个表达式用作assoc数组的键。因此,在这种情况下,能够使用序号而不是列名是很好的。

(有趣的是,当我在写作时听StackOverflow播客时,我的写作风格变得更加随意和闲聊。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1727672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档