<?php
$servername = "localhost";
$name = "root";
$password = "root";
$dbname = "my computer";
// Create connection
$conn = mysqli_connect($servername, $name, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$query = "SELECT * FROM `booked` WHERE
`name` = '{$username}'
`date` = '{$date}'
`computer_id` = '{$select3}'
`start_time` = '{$select1}'
`end_time` = '{$select2}'
`room` = '{$room}'
";
$result = mysqli_query($conn, $query);
if ( mysqli_num_rows ( $result ) > 1 )
{
echo "data already exists";
}
else
{
$sql = "INSERT INTO booked (date, computer_id, name, start_time, end_time, room)
VALUES ('$date', '$select3', '$username', '$select1', '$select2', '$room')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
}
?>
这是我的代码,它将变量值存储在“已预订”表中的特定表行中。
我想确保如果数据库中已经存在相同的值,则mysql拒绝在“已预订”的数据库表中插入值。注意:所有值必须相同。如果除了一个值之外所有值都相同,则系统仍应接受插入。如果找到重复值,则应回显“无法插入数据。找到重复值”
提前谢天谢地答案 0 :(得分:1)
这两个都应该有用。
ALTER TABLE `tableName` ADD UNIQUE `unique_index`(`columnName1` ,`columnName2`);
OR(mysql版本5.5.32)
ALTER TABLE `tableName` ADD UNIQUE (`columnName1` ,`columnName2`);
OR
如果发现重复值,则应回显&#34;无法插入数据。找到重复值&#34;
您可以先检查数据是否已经存在,然后继续INSERT
查询。 PS。这也可以使用子查询来完成。
一种方式:
$query = "SELECT * FROM `tableName` WHERE `columnName1` = '{$val1}'";
$result = mysqli_query($conn, $query);
if ( mysqli_num_rows ( $result ) > 1 )
{
//data already exists
}
else
{
//do your INSERT query here
}
答案 1 :(得分:-1)
更先进的系统应该是PDO。
看看PDO,以及如何使用它,当你开始使用时它真是太棒了。