0

我认为这应该工作,但它不是......

基本上我正在尝试检查 mysql db 以查看是否有符合 2 个变量的记录。如果没有,则做另一件事。在这一点上,结果总是否定的。

$result = mysql_query("SELECT 'lastname' FROM 'Cust_Releases' WHERE 'lastname' = '$usercheck' AND          'TripID'= '$RLtripid'");
echo $result;
if(mysql_num_rows($result) == 0) {
 echo"no";// row not found, do stuff...
} 
else {
 echo"yes"; // do other stuff...
  }
4

4 回答 4

1

首先,停止使用 mysql_* 函数,因为从 PHP 5.5.0 开始不推荐使用此扩展。

其次,始终在数据库名称、表名称和列名称周围使用 (`) 符号。

您使用了保留字RELEASE

$sql = "SELECT `lastname` FROM `Releases` WHERE `lastname` = '$usercheck' AND `TripID` = '$RLtripid'";

您在此处找到的保留字

于 2013-01-16T15:56:54.337 回答
1
$result = mysql_query("SELECT lastname FROM `Releases` WHERE lastname = '$usercheck' AND TripID= '$RLtripid' LIMIT 1");
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
echo $result;
if(mysql_num_rows($result) == 0) {
 echo"no";// row not found, do stuff...
} 
else {
 echo"yes"; // do other stuff...
  }
  • 正如邦迪所建议的那样,逃避“释放”
  • 将“LIMIT 1”添加到您的查询中,以允许在有多个匹配记录时提前退出。您似乎不需要总数。如果存在唯一约束以保证只能返回一行,则可能没有任何区别
  • mysql_query 已弃用。在实际代码中,您应该使用 PDO 和准备好的语句/绑定变量!
于 2013-01-16T16:20:24.707 回答
0

调试是编程中非常重要的事情。首先确保变量 $usercheck 和 $RLtripid 包含值。

----------------------
$sql = "SELECT `lastname` FROM `Cust_Releases` WHERE `lastname` = '$usercheck' AND `TripID`= '$RLtripid'";
回声 $sql;
$result = mysql_query($sql);
....--------------------
于 2013-01-16T16:59:38.067 回答
-1
Try this code. It will help you

$result =  mysql_query("SELECT COUNT( * ) from Cust_Releases lastname = '$usercheck' AND TripID= '$RLtripid'");
if($result  == 0) {
 echo"no";// row not found, do stuff...
} 
else {
 echo"yes"; // do other stuff...
  }
于 2013-01-16T18:35:05.817 回答