选择ID和匹配的用户名顺序?

时间:2016-08-13 00:36:22

标签: php mysqli

您如何知道$id1是否与$user1$user2的行匹配?这是执行此查询的正确方法吗?

$sql = "SELECT id FROM users WHERE username='$user1',username='$user2' LIMIT 2";
$query = mysqli_query($con, $sql);
$row = mysqli_fetch_row($query);
$id1 = $row[0];
$id2 = $row[1];
  • 我可以使用ORDER BY username='$user1'吗?

1 个答案:

答案 0 :(得分:2)

正如我在评论中所说,您的语法无效。 WHERE子句使用ANDOR作为分隔符,而不是逗号。

所以你需要做的就是调整你的查询并在之后进行比较:

旁注:您可能需要向SELECT添加额外的列,因为这可能会引发未定义的偏移通知。另外请确保如果您的行数超过2行,则LIMIT为2可能会失败。

$sql = "SELECT id FROM users WHERE username='$user1' OR username='$user2' LIMIT 2";
$query = mysqli_query($con, $sql);
$row = mysqli_fetch_row($query);
$id1 = $row[0];
$id2 = $row[1];

if($user1 == $id1) {

    echo "User 1 is the same ";

}

if($user2 == $id2) {

    echo "User 2 is the same";

}

参考文献:

根据你的编辑:

  

我可以使用ORDER BY username ='$ user1'

不,您需要使用ORDER by column_name,而不是“等于”和变量。

如果您的列名与变量相同,那么这是可能的,但在您的数据库模式/内容已知之前我肯定不会知道。

语法为:

ORDER BY column接受ASCDESC,具体取决于您想要的顺序。

参考:

如果您的查询有任何用户干预/输入,您将需要使用预准备语句,因为这将使您对SQL注入开放。

参考文献: