我想检查一个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
的行中。
答案 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(*)
仅返回找到的行数。