1
// Check to see if p_name exists
    $sql = mysql_query("SELECT patient_name FROM patient WHERE patient_name = '" . $p_name . "'");
    if (mysql_num_rows($sql) == 0){
       // patient database
       mysql_query("INSERT INTO patient (patient_name)
                   VALUES ( '$p_name' )") or die (mysql_error());
       }
    else
       die ("Patient name exist!");

为什么即使数据库中存在患者姓名,它仍会插入新记录?

是否if (mysql_num_rows($sql) == 0)正确?

4

1 回答 1

1

查询可能由于某种原因而失败。这意味着$sql是一个布尔值 FALSE。您尝试将其传递FALSEmysql_num_rows(),这也失败了,因为它希望获得结果句柄。这意味着 mysql_num_rows() 也返回一个 boolean FALSE。在 PHP 中,false == 0is TRUE,所以你执行你的插入语句。

永远不要假设查询已经成功。总是检查失败。这意味着,作为最低限度,你有:

$result = mysql_query(...) or die(mysql_error());
                          ^^^^^^^^^^^^^^^^^^^^^^
于 2013-02-06T19:17:38.010 回答