检查mysql数据库中是否存在记录


check if record exist in mysql db

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

基本上我试图检查mysql数据库,看看是否有一个记录,满足2个变量..如果没有做一件事,如果是做另一件事。此时的结果总是no。

$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...
  }

首先,停止使用mysql_*函数,因为这个扩展在PHP 5.5.0中已被弃用。

其次,总是在数据库名、表名和列名周围使用(')符号。

您使用了一个保留字RELEASE

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

保留字

$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...
  }
  • 转义'Releases',如Bondye建议的
  • 在查询中添加'LIMIT 1',以便在有多个匹配记录时允许提前退出的可能性。你似乎不需要总数。如果存在保证只能返回一行的唯一约束,则可能没有任何区别
  • mysql_query已弃用。在实际代码中,你应该使用PDO和准备好的语句/绑定变量!

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

<>之前-----------------------$sql = "SELECT ' lastname ' FROM ' Cust_Releases ' WHERE ' lastname ' = '$usercheck' AND ' TripID ' = '$RLtripid'";echo $ sql;$result = mysql_query($sql);....-------------------
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...
  }