2014-01-17 4 views
1

У меня проблема, это мой код, и когда я добавляю новый ввод с тем же именем (nazov), он попадает в базу данных, поэтому он дублируется. помогите пожалуйстапредотвращение дублирования ввода в форме

if(isset($_POST['submit'])) 
{ 

    //get the name and comment entered by user 
    $nazov = $_POST['nazov']; 


    //connect to the database 
    $prip=mysqli_connect("xxx","xxx","xxx","xxx") or die('Error connecting to MySQL server'); 

    //insert results from the form input 
    $sql = "INSERT IGNORE INTO trieda (nazov) VALUES('$_POST[nazov]')"; 

    $result = mysqli_query($prip, $sql) or die(mysqli_errno($prip) == 1062 ? "Trieda už existuje" : 'Chyba načítavania databázy.'); 

    mysqli_close($prip); 
} 
+0

Проверьте, есть ли у вас это значение в db перед вставкой. –

+0

Вы используете 'mysqli_ *' и не используете подготовленные операторы. В вашей базе данных этот столбец должен быть уникальным индексом, а затем правильно обрабатывать ваши ошибки (для повторяющихся значений), или вы можете проверять дубликаты, используя php перед вставкой. – IROEGBU

+0

вы можете получить данные из таблицы, а затем проверить или вы можете сделать столбец 'name' уникальным в вашей базе данных. –

ответ

0

вы можете установить подачу, которую хотите быть уникальной в своей базе данных MYSQL. Поэтому, если вы попытаетесь добавить то же значение, вы просто получите ошибку.

Вы также можете выбрать сначала и проверить, существуют ли данные в базе данных, прежде чем вставлять их.

Вы можете сделать ленивое решение и использовать REPLACE вместо INSERT. REPLACE обновляет его, если он существует и вставляет, если нет.

+0

Alireza, спасибо за бой REPLACE, я предпочел бы использовать другой, я не хочу его заменять для дальнейшего использования ... – frank17

Смежные вопросы