0

谁能告诉我这里发生了什么。我不确定为什么此代码不起作用并引发以下错误:

You have an error in your SQL syntax, check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND role != 7 AND role != 4' at line 3

    $sql = 'SELECT * FROM tblusers
                 INNER JOIN permissions on tblusers.usrID = permissions.user_id
                 WHERE permissions.team_id='.$team_id.' AND role != 7 AND role != 4';

    require("connection.php");

    $result = mysql_db_query($DBname,$sql,$link) or die(mysql_error()); 

    while($row = mysql_fetch_assoc($result))
    {
      $message->addTo($row['usrEmail'], $row['usrFirst'] . ' ' . $row['usrLast']);
    }

我知道变量 $team_id 工作正常,因为如果我“回显”它,它工作正常。关于我在这里做错了什么的任何想法?谢谢!

4

4 回答 4

4

echo out $sql,尝试数据库中的语句或将其粘贴到此处,以便我们对其进行调试。我最初怀疑您需要在变量周围加上引号,但您可能不需要,因为它是一个数字。

两个表都有一row列还是只有一个表有?

于 2009-11-07T00:44:55.867 回答
3

如果为空,我会收到确切的错误消息$team_id- 你确定它是在代码中设置的吗?

于 2009-11-07T00:49:45.547 回答
1

通过使用准备好的语句,您可以避免引号问题。

$dbConn = new mysqli("127.0.0.1", "username", "password", "db");
$stm = $dbConn->prepare("SELECT * FROM tblusers WHERE team_id = ?");
$stm->bind_param("i", $team_id); /* 'i' for an integer */
$stm->execute();
于 2009-11-07T00:59:53.337 回答
1

角色字段不明确尝试 tblusers.role

于 2009-11-07T17:57:02.980 回答