0

我试图从数据库中回显两件事,为什么这不起作用?以及我如何让它发挥作用。我只是在学习 php,所以如果这是一个非常愚蠢的问题,我很抱歉。

$result = mysql_query("SELECT user_id, team FROM users WHERE username = '$username'");
while($row = mysql_fetch_array($result))
$user_id = $row['user_id'];
$team = $row['team'];

echo = $user_id;
echo = $team;`

感谢您提供的任何帮助!

4

2 回答 2

3

您应该使用方括号对代码进行分组,如下所示:

$result = mysql_query("SELECT user_id, team FROM users WHERE username = '$username'");
while($row = mysql_fetch_array($result))
{
    $user_id = $row['user_id'];
    $team = $row['team'];

    echo $user_id;
    echo $team;
}
于 2012-12-13T23:41:41.217 回答
0

正如 tpaksu 已经提到的,您需要在您希望循环执行的语句周围加上括号。

二、echo的正确格式是

echo $user_id;

还有另外两个相当基本的评论

  • mysql 调用已被弃用,这意味着它们已被更新的替代品(特别是 mysqli 或更好的 PDO)取代。不要浪费时间学习如何使用 mysql* 系列调用,现在切换到 mysqli 或者最好是 PDO 。
  • "SELECT user_id, team FROM users WHERE username = '$username'");在 SQL 语句中按原样包含变量的 sql 语句是SQL 注入的巨大风险。您可能会浪费宝贵的时间设计各种巧妙的方案来在包含之前清理变量,或者您可以学习唯一正确的方法,即使用准备好的语句。乍一看可能不太直观,但您很快就会习惯。

这会将您的代码转换为以下内容:

<?php
  $stmt = $dbh->prepare("SELECT user_id, team FROM users WHERE username = ?");
  if ($stmt->execute(array($username))) {
    while ($row = $stmt->fetch()) {
      $user_id = $row['user_id'];
      $team = $row['team'];

      echo $user_id;
      echo $team;
    }
  }
?>

这是注射证明和使用最新的技术。作为额外的副作用,适应其他品牌的数据库会容易得多。

于 2012-12-13T23:48:02.570 回答