Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在插入数据之前,请检查并确保数据不存在于数据库的表中_Php - Fatal编程技术网

Php 在插入数据之前,请检查并确保数据不存在于数据库的表中

Php 在插入数据之前,请检查并确保数据不存在于数据库的表中,php,Php,我试图使用PHP脚本将数据插入一个包含三列的表中。名为event的表包含这些字段和数据 id(int) event(varchar) description (text) 1 Lorem ipsum sit dolor amet Lorem ipsum dolor sit amet, consectetur adipiscing elit...... 但是在插入之前,我试图在插入表之前检查数据是否不存在。

我试图使用PHP脚本将数据插入一个包含三列的表中。名为event的表包含这些字段和数据

  id(int)   event(varchar)                      description (text)
   1        Lorem ipsum sit dolor amet          Lorem ipsum dolor sit amet, consectetur adipiscing elit......
但是在插入之前,我试图在插入表之前检查数据是否不存在。 我使用下面的PHP脚本进行检查和插入,但它似乎只是在插入数据,即使数据已经存在。 有什么问题?最好的解决方法是什么

   <?php
    $event          = "Lorem ipsum sit dolor amet";
    $description    = "Lorem ipsum dolor sit amet, consectetur adipiscing elit......";

    if ($check = $db->prepare("SELECT event, description FROM event")) {
        $check->execute();
        $check->bind_result($e, $d);
        $check->fetch();
        $check->close();
     } else {
        echo "SQL Statement could not get executed.";
     }

    if (strcmp($event, $e) && strcmp($description, $d)) {
       echo "Event already exists.";
    } else {
         if ($insert_event = $db->prepare("INSERT INTO event (event, description) VALUES (?,?) ")) {
            $insert_event->bind_param("ss", $event, $description)
            $insert_event->execute();

            $insert_event->close();
          } else {
             echo "SQL Statement could not get executed.";
          }

         header("index.php");
      }

      ?>
首先,当字符串相等时,strcmp返回0。第二,为什么不使用WHERE来检查数据库中是否已经存在某个值?是的,将查询更改为:selectevent,description FROM event WHERE event=?和description=?,并将$event和$description绑定到它。当有一个或多个结果时,它已经存在。