我如何在mysql表上获得一个字段?

时间:2012-02-14 03:24:54

标签: php mysql mysqli

我是一个php / mySQL新手,我正试图抓住它。我有代码来检测我是否得到用户名/密码匹配,现在我试图获取用户ID字段,以便我可以更新记录。这是我到目前为止所拥有的:

    $sql = "SELECT username FROM users WHERE username='$username' AND password='$password'";
    $result = $link->query($sql) or die(mysqli_error());

使用print_r($ result)显示有一个项目,但是我从这里开始输了。

2 个答案:

答案 0 :(得分:3)

试试这个。

$sql = "SELECT username FROM users WHERE username='$username' AND password='$password'";
$result = $link->query($sql) or die(mysqli_error());

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

        $userID= $row['username'] ;
        // If you need other field as userID just change the sql and the index of $row according to that.

}

修改

如果您只想获得一行。

if($result->num_rows==1)
{
   $row = $result->fetch_array(MYSQLI_ASSOC);
   $userID = $row["username"];
}

答案 1 :(得分:1)

也许这会有所帮助。在任何编程语言中,运行SQL查询将包含以下步骤:

  1. 构建要运行的SQL语句的文本。
  2. (可选)如果您的陈述涉及使用参数(或“占位符”),请准备一个参数值数组,这些参数值将替换为每个参数值他们
  3. (“准备”和......)在一些先前打开的“数据库连接”上“运行”查询。 (在您的示例中,“$ link”必须对应于该连接。)这为您提供了一个句柄(您称之为“$ result”),它对应于返回的零行或多行通过该查询。
  4. 现在,使用该句柄一次一个地检索这些行,直到没有更多或直到您厌倦了这样做。
  5. (可选)整洁,“关闭”句柄,从而向数据库系统指示它可以丢弃用于向您提供这些行的所有资源。
  6. “简单来说,这些是已知Universe中的每个程序将要经历的基本步骤,”如果您现在再次浏览PHP文档,您会看到有与这些步骤相对应的功能。浏览您正在阅读的章节,看看您现在是否可以匹配我刚刚描述的场景。 HTH ...