PHP:检查SQL表中的两个列值是否正确

时间:2014-04-28 08:20:30

标签: php sql

我想检查一个SQL表,如果两个列值都等于使用PHP的指定值。我的表看起来像这样:

             my_db 
------------------------------------------
 code       | user | email               |
------------------------------------------
 10314343   |  20  | example@example.com |
 13423434   |  22  | example@example.com |
 11342434   |  40  | example@example.com |

这是我的PHP,虽然不起作用:

// Set variables
$tbl_name = mydb;
$matchCode   = "10314343"
$matchUserID = "20"

// Query matchCode and MatchUSerID on db
$getName = "SELECT FROM $tbl_name WHERE user ='$matchUserID' ";
$queryName = mysql_query($getName);

// Query matchCode and MatchUSerID on db
$getCode = "SELECT FROM $tbl_name WHERE code ='$matchCode' ";
$queryCode = mysql_query($getCode);


// If these match 
if($queryCode == 1 || $queryName == 1) {
  echo "The User ID and Code Value Both Match";
}

我不确定这是否是最好的做事方式。我以为你可以通过" user"来获取整个行数据。 ID,然后查询"代码"的那一行值。虽然我不确定如何做到这一点。

我想要实现的是一个sql查询,它检查我的变量是否与" code"的数据匹配。在$matchUserID的行中。

1 个答案:

答案 0 :(得分:2)

你没有选择任何东西,如果你想检查两行中的两个值是否相同,你应该组合查询:

$sql = "SELECT COUNT(*) FROM $tbl_name WHERE user ='$matchUserID' AND code = '$matchCode'";
$result = mysql_query($sql) or die(mysql_error());
$hasMatch = mysql_result($result, 0);
if ($hasMatch) {
    ...
}

由于您只想知道表中是否存在行,您可以使用COUNT(*)仅返回找到的行数。