正如 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;
}
}
?>
这是注射证明和使用最新的技术。作为额外的副作用,适应其他品牌的数据库会容易得多。