检查值是否已存在不起作用(PHP)

时间:2015-10-04 12:36:58

标签: php mysql database

我正在研究如何检查数据库中是否已存在值。 每当我尝试输入(例如:000)时,总会出现错误:警告:mysql_num_rows()期望参数1为资源... , 但输入已保存在数据库中

然后如果我再次输入相同内容,检查值是否存在的条件不起作用

if (isset($_POST['add']))
    {
        $docid = $_POST['docid'];

        $check = mysql_query("SELECT doc.docid, doc_details.docid FROM doc, doc_details WHERE docid='$docid'");
        $number_of_rows = mysql_num_rows($check);
        if ($number_of_rows > 0)
            {
                echo "<script> alert('Your input already exist, no input made'); </script>";
            }
        else
            {
                $insert = mysql_query("INSERT INTO doc (docid) VALUES ('$docid')");
                $insert = mysql_query("INSERT INTO doc_details (docid) VALUES ('$docid')");
                echo "<script> alert('ADDING: Successful'); </script>";
            }
    }

1 个答案:

答案 0 :(得分:0)

当发生错误时,described in the manual mysql_query返回false。正如错误所述,$check不是资源,因此它可能是false。因此,您的第一个SELECT查询中存在错误,您应该对其进行调试。

你可以试试这个,它可能会告诉你什么是错的:

    $check = mysql_query("SELECT doc.docid, doc_details.docid FROM doc, doc_details WHERE docid='$docid'");
    if (false === $check)
      var_dump(mysql_error());

false is never bigger than 0开始,您的脚本将始终尝试插入,忽略错误。

Offtopic;你应该migrate to mysqli_*而不是使用mysql_ functions。