获取字段名称和值:数组

时间:2013-02-19 19:35:35

标签: php mysql mysqli

我使用* mysql_fetch_assoc *但是:

This extension is deprecated as of PHP 5.5.0, and will be removed in the future

php.net建议* MySQLi或PDO_MySQL *

我尝试了mysqli_fetch_assoc,但不知道如何获取实际的字段名称(属性)和相应的值。

假设我只有一行用户信息:

例如结果字段名称:"名称"和"年龄"和价值观:"约翰"和" 18"。

我的目标是获取实际的字段名称(名称和年龄),同时在同一个循环中获取特定字段名称的值,例如$ column [' Name']或$ column ['年龄&#39]。

现有循环中的示例sql:

$sqlUpdate = "Update report SET `" . $key. "` = " . $value . " where Name = '" . $value . "'"

因为如果我只使用$ value,我怎么知道我在...where Name = '" . $value . "'"?

中指的字段名称?

这仅用于报告目的,其他表格行中的记录是我其他表格的字段名称(列)。

希望这能更多地解释我的担忧。

顺便说一句,mysql_fetch_assoc和mysqli_fetch_assoc只是告诉可能有足够知识的人,如果这些扩展(旧的或新的)对解决我的问题仍然有用。

1 个答案:

答案 0 :(得分:3)

  1. 不要使用mysqli。请改用PDO 每个人都在敦促你从mysql_移动它只是为了准备好的语句,但mysqli无法使用它们。
  2. 正如评论中所说,关联数组已经包含所有这些信息 - 名称为键,值为值。无论它来自哪里 - mysql,mysqli或手动创建的数组:
  3. $arr['Name'] = 'John';
    

    所以,你可以用各种方式获得你的钥匙。

    $key = key($arr); // $key="Name" now
    foreach ($arr as $key => $value) {  // another way to get keys and values.
        echo $key .' ' . $value;
    }
    $keys = array_keys($arr); // $keys=array('Name'); now
    

    但我觉得你的问题在其他地方很少,但你无法正确解释它 你的最终目标是什么?为什么需要该字段名称?