|
|
|||||
Регистрация: Mar 2001
Сообщений: 271
|
primary key или unique?
Товарищи!
у меня тут что то не то. крейзи прошу не извращаться нало мной, окей? у меня вот есть табла - а в ней два поля праймари кии! (то есть NULL в них писать теоретически низзя). но ведь что странно - когда у меня пхп шный скрипт посылает запрос в эту таблицу(причем эти поля у меня заполняются из текстбоксов - ну input type=text) : 1. запись добавляется преспокойно, если один из текстбоксов пустой при нажатии сабмита 2. запись не добавляется ток тогда, когда в таблице уже есть АНАЛОГИЧНАЯ запись. могу код показать... если надо...
__________________
Есть человек - есть проблемы, нет человека - нет проблем. И.В.Сталин. |
|
|||||
Ветеран форума
|
если можно, то выложи...
__________________
... |
|
|||||
Регистрация: Mar 2001
Сообщений: 271
|
mysql> describe u_table;
+------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | user_name | varchar(20) | | PRI | | | | user_sname | varchar(20) | | PRI | | | | user_ra | tinyint(4) | YES | | NULL | | | user_wa | tinyint(4) | YES | | NULL | | | user_st | datetime | YES | | NULL | | | user_et | datetime | YES | | NULL | | | user_count | smallint(6) | YES | | 0 | | +------------+-------------+------+-----+---------+-------+ 7 rows in set (0.22 sec) mysql> select * from u_table; +------------+------------+---------+---------+---------------------+---------------------+------------+ | user_name | user_sname | user_ra | user_wa | user_st | user_et | user_count | +------------+------------+---------+---------+---------------------+---------------------+------------+ | | Пупкин | 0 | 0 | 2002-06-03 12:22:32 | 0000-00-00 00:00:00 | 0 | | Василий | | 0 | 0 | 2002-06-03 12:22:17 | 0000-00-00 00:00:00 | 0 | | Василий | Пупкин | 0 | 0 | 2002-06-03 12:22:10 | 0000-00-00 00:00:00 | 0 | | ВАСИЛИЙ | ПУПКИН | 0 | 0 | 2002-06-04 11:55:02 | 0000-00-00 00:00:00 | 0 | | dd | dddd | 0 | 0 | 2002-06-04 12:10:29 | 0000-00-00 00:00:00 | 0 | | 1111 | 111 | 0 | 0 | 2002-06-04 12:12:24 | 0000-00-00 00:00:00 | 0 | +------------+------------+---------+---------+---------------------+---------------------+------------+ 6 rows in set (0.38 sec) mysql> exit; как видишь - вставляются пустые значения. такого быть не должно. сообщние о "дубляже" появляется лишь тогда, когда имя и фамилия юзера сталкиваются с такими же, но уже внесенными в базу. однако если просто внести фамилию без имени или наоборот - база ЛЕГКО апдейтится... что такое? а вот собственно скрипты: сначала юзер попадает сюды: (welcome.php) <html> <body bgcolor=black> <font color=white> <form method=POST action=user_stat.php> <table border=0> <tr><td><font color=white>Введите имя:</font></td><td><input type=text name=bax_un></td></tr> <tr><td><font color=white>Введите фамилию:</font></td><td><input type=text name=bax_usn></td></tr> <?php // bax_un - это имя юзера // bax_usn - фамилия //echo strtotime ("now"); ?> </table> <input type=submit> </form> </font> </body> </html> (end welcome.php) потом постом посылаем в этот скрипт: (user_stat.php) <?php $query="insert into u_table VALUES ('$bax_un','$bax_usn','','',now(),'','')"; $link = mysql_connect("server", "root", "") or die("Could not connect"); mysql_select_db("bax") or die("Could not select database"); mysql_query($query)||die(mysql_errno().": ".mysql_error()."<BR>"); //mysql_result($result); mysql_close($link); header ("Location: http://server/!work!/auth.php"); ?> (end user_stat.php) что за grabbли?
__________________
Есть человек - есть проблемы, нет человека - нет проблем. И.В.Сталин. Последний раз редактировалось comrade; 05.06.2002 в 07:56. |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Re: primary key или unique?
Цитата:
Общее правило: ЛЮБЫЕ данные пользователя перед передачей в БД должны пройти проверку. Так что просто на уровне PHP отсекай попытку вставить некорректные данные.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Кстати, мсье не пробовал -- в шутку -- ввести в текстовое поле нечто, содержащее одинарный апостроф?
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
Регистрация: Mar 2001
Сообщений: 271
|
Крейзи, а в мускуле нет такого поля типа - рекваред?
ну то есть, чтобы обязательно оно должно было содержать какие-то данные? required с англицкого обязательный а насчет того, что придется на уровне пхп все делать я уже смирился... и завтра попробую, что это там произойдет с твоим апострофом... надеюсь не повалю мускул... а то и так гемора хватает!
__________________
Есть человек - есть проблемы, нет человека - нет проблем. И.В.Сталин. |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
Регистрация: Mar 2001
Сообщений: 271
|
Ёлки... действительно с этим апострофом выскакивает ПАРСИНГ ЕРРОР...
не все так просто.. а может это в пхп надо влкючить маджик_квотс, а? тут блин мне еще задачку накинули - оказывается мой интерфейс для заполнения базы "слишком скудный". пришлось теперь извращаться со всякими слоями и прочим, но уже в явескрипт. теперь гемор с этой передачей параметров из Жабыскрипт в пхп, но к счастью есть дримвейвер с дебугерром JS с почти полным или полным описанием ВСЕГО DOM! это же супер!
__________________
Есть человек - есть проблемы, нет человека - нет проблем. И.В.Сталин. |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
Регистрация: Mar 2001
Сообщений: 271
|
Crazy, а нельзя ли привести кусочек кода именно насчет этой функции, а?
__________________
Есть человек - есть проблемы, нет человека - нет проблем. И.В.Сталин. |
Часовой пояс GMT +4, время: 10:43. |
|
« Предыдущая тема | Следующая тема » |
|
|