【问题标题】:Automatically name array elements from database column name in PHP [closed]在PHP中从数据库列名自动命名数组元素[关闭]
【发布时间】:2012-09-14 04:14:45
【问题描述】:

我想创建一个数组然后通过 JSON 编码,现在我根据列名手动命名数组元素,如果它的列数很少,但如果它是 1000 列。有没有办法自动命名数组元素?

现在:

$resulta = mysql_query("SELECT bla,bla1bla2 from ..."); 
$toEncodeArray = array();
if($resulta) 
{
 while($columna = mysql_fetch_array($resulta)) 
 {
  $toEncodeArray[] = array(
   "bla" => $columna['bla'], 
   "bla1" => $columna['bla1'],
    ...
  );
 }
}

想要类似的东西:

while($columna = mysql_fetch_array($resulta)) 
{
 $toEncodeArray[] = array(<same name as column> => $columna[<iterate columns?]);
}

仅使用 $columna = mysql_fetch_array($resulta) 然后对 $columna 进行编码会给我带来垃圾。

提前致谢。

【问题讨论】:

  • 请不要使用mysql_* 函数编写新代码。它们不再维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDOMySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial.
  • 如果您有一个包含一千列的数据库表,那么您做错了。
  • @vascowhite 我从哪里得到一个消息来源,告诉我给定的表 X 应该最多只有 N 列?找到一个固定的数字会很有趣,你应该只有“24”列,或者“99”或“43”,我的意思是“哪里”开始太多变成一个非常主观的情况,取决于问题本身。正如我明确指出的,这是一个 1000 的假设。

标签: php mysql arrays json encode


【解决方案1】:

只需使用mysql_fetch_assoc():

$res = mysql_query(...);
while( $row = mysql_fetch_assoc($res) )
{
    print_r($row);
    // or echo $row['something'];
}

【讨论】:

    猜你喜欢
    • 2012-10-24
    • 1970-01-01
    • 2011-08-19
    • 2021-10-18
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多