// 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!");
为什么即使数据库中存在patient_name,它仍然插入新记录?
if (mysql_num_rows($sql) == 0)
正确吗?
查询可能由于某种原因而失败。这意味着$sql
是布尔值FALSE。您尝试将该FALSE
传递给mysql_num_rows()
,但也失败了,因为它希望获得一个结果句柄。这意味着mysql_num_rows((还返回一个布尔值FALSE
。在PHP中,false == 0
就是TRUE
,所以您可以执行插入语句。
NEVER假设查询成功始终检查故障。这意味着,作为最低限度,你有:
$result = mysql_query(...) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^