Я использую Stack Overflow все лето, чтобы получить мой веб-проект в Интернете, и у меня его было достаточно, поэтому я сделал его общедоступным. Однако у меня есть один маленький камень в моей обуви, который я хотел бы исправить.Предотвращение дублирования в базе данных, а не в столбце ID
Я пробовал все предлагаемые здесь предложения INSERT IGNORE, чтобы предотвратить дублирование ввода данных в строке, отличной от идентификатора (который является основным столбцом). Моя веб-страница - www.lostdots.com, и я хочу, чтобы кто-то дважды входил в одно доменное имя, так как это сделает базу данных неопрятной.
Я использовал:
PRIMARY KEY (id, namebox1))");
foreach($form_data as $name=>$value)
{
mysql_query("ALTER TABLE $mysql_table ADD $name VARCHAR(255)");
}
mysql_query("INSERT IGNORE INTO
$mysql_table (`DATESTAMP`, `TIME`, `IP`, `BROWSER`)
VALUES ('".date("Y-m-d")."',
'".date("G:i:s")."',
я понял, что, делая «namebox1» первичный ключ было бы предотвратить дублирование, и «Insert игнорировать» помешают сообщение об ошибке. Так что я делаю неправильно? Я знаю, что я должен был переходить в MySQLi, но я хотел бы перебирать один мост за раз. Любые идеи GURU?
спасибо, Аластер
это строка, в которой вы не хотите, чтобы записи duplacte были уникальными? – Andre
думаю. Я узнал, как немного запустить код, но я должен был идти первым. Имена доменов введены пользователем, и чтобы кто-то не добавлял их имя для рекламы более одного раза, я хотел предотвратить дублирование. Но я в тупике. –
try ALTER TABLE 'table_name' \t ДОБАВИТЬ УНИКАЛЬНЫЙ ИНДЕКС' имя_домена_column' ('domain_name_column'); чтобы значения столбца были уникальными, тогда INSERT IGNROE должен работать – Andre