检查数据库中是否存在值

时间:2013-08-30 08:51:27

标签: php mysql return-value

我正在尝试检查数据库中是否存在该值的代码。我的代码是:

$registration_code = $_POST['registration_code'];
$registration_code = mysql_real_escape_string($registration_code);
$checkcustomer = mysql_query("SELECT `customer_no` FROM customer WHERE registration_code = '$registration_code'");
echo $checkcustomer;
if (!$checkcustomer) {
echo "<script language=javascript>alert('Please enter a valid Registration code.')</script>";   
}
else{
    // some php code
}

而不是回头客户。 ,当我回复$checkcustomer时,我的查询返回'资源ID#19'。有人可以帮助我????

5 个答案:

答案 0 :(得分:1)

您需要使用 mysql_fetch_array 来提取数据

$registration_code = $_POST['registration_code'];

$registration_code = mysql_real_escape_string($registration_code);
$checkcustomer = mysql_query("SELECT `customer_no` FROM customer WHERE registration_code = '$registration_code'");

$val = mysql_fetch_array($checkcustomer);
echo $val;
if (!$val) {
echo "<script language=javascript>alert('Please enter a valid Registration code.')</script>";   
}
else{
    // some php cpde
}

顺便说一下,不要使用 mysql _ 功能,它们已被弃用且不再维护。使用PDO或 mysqli 功能。

答案 1 :(得分:0)

尝试使用PDO而不是弃用的MySql函数。 还要注意使用mysql_real_escape_string可以导致mysql注入。

要使代码正常工作,您应该使用

$result = mysql_query('your query');
while ($row = mysql_fetch_assoc($result)) {
    echo $row['customer_no'];
}

答案 2 :(得分:0)

只需使用mysql_num_rows

即可
if (mysql_num_rows($checkcustomer)) {
   echo "<script language=javascript>alert('Please enter a valid Registration code.')</script>";   
} else{
   // some php code
}

注意: mysql_*函数已弃用。应使用MySQLiPDO_MySQL扩展名。

答案 3 :(得分:0)

你可以这样做......

if(mysql_num_rows($checkcustomer) == 0) {
    //do something
} else { 
    //do something else
}

它基本上会检查已返回的行数

答案 4 :(得分:0)

使用此

$row = mysql_fetch_assoc($result);
echo $row['customer_no'];

或者如果您只想检查记录是否存在,请检查

mysql_num_rows