Php 在插入数据之前,请检查并确保数据不存在于数据库的表中
我试图使用PHP脚本将数据插入一个包含三列的表中。名为event的表包含这些字段和数据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...... 但是在插入之前,我试图在插入表之前检查数据是否不存在。
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绑定到它。当有一个或多个结果时,它已经存在。