【问题标题】:Can I select an index in my database by 'index' rather then by 'name' in php mysql?我可以通过'index'而不是通过php mysql中的'name'在我的数据库中选择一个索引吗?
【发布时间】:2026-02-12 22:55:02
【问题描述】:

我在php中有这个语句

$rating[0] = $ratings['rating_one'];

您可以看到它正在选择名称为“rating_one”的列。

是否可以使用数字而不是名称来选择列?即

$rating[0] = $ratings[1];

【问题讨论】:

  • 不是直接的,但是如果$ratings来自数据库,你可以影响数组的填充方式。你用什么代码来获取数据?

标签: php mysql database select


【解决方案1】:

没有。字符串键和数字键之间没有直接对应关系。我能想到的唯一奇怪的例外是mysql_fetch_array 生成的数组。它的默认获取模式是使用数字和字符串键创建一个。

但是除非你自己构建数组,否则没有办法制作0 = rating_one

【讨论】:

  • 如果您的要求与现实不符,无需讽刺。
  • 我不是在讽刺吗?感谢您的建议,但现在您的假设让您看起来很无知。
  • :p = 伸出你的舌头。
  • :P = 嘿,这很酷,感谢您提供的信息。这可能意味着一系列事情。我非常感谢您的意见,就像我所做的每个人一样。谢谢。
【解决方案2】:

如果数组是由mysql_fetch_array 生成的,那么使用MYSQL_NUMMYSQL_BOTH 也将填充数组整数键。 MYSQL_BOTH 是默认设置,因此除非您已经检查过,否则它可能会在您不需要做任何其他事情的情况下工作。 这(或类似的)将是问题的正确解决方案。

但是,作为练习,可能可以“嗅探”每列的整数是什么,因为 PHP 中的数组是有序容器。所以我们可以这样做:

$keys = array_flip(array_keys($rating));

// Now you can index using an integer like this:
$itemWithIndex1 = $rating[$keys[1]]; // key 1 == second element  

我假设 $ratingonly 字符串键;否则,以上将永远无法正常工作。请记住:即使有效,也是错误的做法!

【讨论】:

    最近更新 更多