INSERT вставляет 2 строки вместо одной

mvlad

Новичок
Почему-то код:

PHP:
$db = mysql_connect('localhost', 'root', '') or die('MySQL Error!'); 
mysql_select_db('database') or die('DB connect error!'); 
$result = mysql_query("INSERT INTO `table` SET `value1` = '1', `value2` = '1' ") or die(mysql_error());

Вставляет 2 записи в таблицу.

в логах написано:
1306 Connect root@localhost on
1306 Init DB database
1306 Query INSERT INTO table VALUES ('4','1','1')
1306 Quit
1307 Connect root@localhost on
1307 Init DB database
1307 Query INSERT INTO table VALUES ('5','1','1')
1307 Quit

Скрипт и сам запрос запускается один раз, но почему он выполняется 2 раза?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Видимо потому, что запускается 2 раза. Логи как бы намекают.
 

mvlad

Новичок
В том то и дело, я его запускаю только один раз. Там скрипт то простейший, один файл всего. Сделал чтобы проверить. Ошибок нет нигде. Но все равно вставляется две записи ((
 

Dovg

Продвинутый новичок
telepat mode - favicon.ico реврайтится на index.php
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
угу, или картинки какие там выводятся в виде <img src="index.php?хренась_тут_что-нибудь" alt=""> =)
 

mvlad

Новичок
Проверь access.log вебсервера
127.0.0.1 - - [27/Dec/2011:22:34:36 +0600] "GET /phpmyadmin/sql.php?db=database&table=table&token=3d1c35566c398b038872c78950ab8925&pos=0 HTTP/1.1" 200 31323
127.0.0.1 - - [27/Dec/2011:22:34:40 +0600] "GET /phpmyadmin/sql.php?db=database&table=table&token=3d1c35566c398b038872c78950ab8925&pos=0 HTTP/1.1" 200 36411

telepat mode - favicon.ico реврайтится на index.php
Что такое telepat mode? favicon'а на сайте нет...

угу, или картинки какие там выводятся в виде <img src="index.php?хренась_тут_что-нибудь" alt=""> =)
... и картинок тоже. Скрипт состоит из трех строк )

Когда явно указываю id(primary,auto_increment) номер для записи, то добавляется только одна запись; когда не указываю id - вставляется две записи
 

Вурдалак

Продвинутый новичок
mvlad, блеять, посмотри в access.log обращения к твоему скрипту, какого хрена ты скопировал нам сюда эти обращения к phpMyAdmin?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
mvlad
Еще раз.
rewriteRule есть ?
да?
- в поиск по форуму "favicon"
 

mvlad

Новичок
mvlad
Еще раз.
rewriteRule есть ?
да?
- в поиск по форуму "favicon"
access.log пустой, я его вообще удалил, но проблему это не решило

Ты уверен, что смотришь access.log нужного тебе хоста?
не уверен (

Я понимаю, что я не самый умный, и мне еще учиться и учиться... Но дело в том, что в интернете я не смог найти решение своей проблемы ( Поэтому я обратился к вам, к всезнающим гуру, в надежде на то, что вы мне поможете. Эта проблемка у меня как ком в горле, не дает мне дальше изучать сайтостроение )
 

mvlad

Новичок
Ты уверен, что смотришь access.log нужного тебе хоста?
Вот теперь уверен )
127.0.0.1 - - [27/Dec/2011:23:36:14 +0600] "GET /test.php HTTP/1.1" 200 2 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
127.0.0.1 - - [27/Dec/2011:23:36:14 +0600] "GET /test.php HTTP/1.1" 200 2 "http://testtest.ru/test.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"

Я так понимаю скрипт два раза запускается. Но почему? незнаю ((
 

Вурдалак

Продвинутый новичок
mvlad, судя по наличию реферера на второй строчке, ты говоришь неправду, что в скрипте всего лишь 3 строчки. У тебя на test.php выводится как минимум ссылка или форма.
 

mvlad

Новичок
Кнопка сабмит в ссылке?
не в ссылке, его вообще нет

Дай 10 последних строчек из лога
Они все почти одиннаковые
(KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
127.0.0.1 - - [27/Dec/2011:23:56:43 +0600] "GET /test.php HTTP/1.1" 200 2 "http://testtest.ru/test.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
127.0.0.1 - - [27/Dec/2011:23:56:43 +0600] "GET /test.php HTTP/1.1" 200 2 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
127.0.0.1 - - [27/Dec/2011:23:56:43 +0600] "GET /test.php HTTP/1.1" 200 2 "http://testtest/test.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
127.0.0.1 - - [27/Dec/2011:23:56:43 +0600] "GET /test.php HTTP/1.1" 200 2 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
127.0.0.1 - - [27/Dec/2011:23:56:43 +0600] "GET /test.php HTTP/1.1" 200 2 "http://testtest.ru/test.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"

остальные тоже самое
 

mvlad

Новичок
Проблема скрывалась в браузере chrome, точнее в плагине RDS. Отключил плагин, все заработало. Всем спасибо за помощь! У меня последний вопрос: А если какой-нить пользователь сайта с хромом и рдс баром запустит этот скрипт на сайте, то у него тожу две записи появятся? Ну это я так... ради интереса спросил ) Можно ли от этого как то защититься?

P.S. Прилеплю форму, думаю, будет самое то )
 

mvlad

Новичок
mvlad, судя по наличию реферера на второй строчке, ты говоришь неправду, что в скрипте всего лишь 3 строчки. У тебя на test.php выводится как минимум ссылка или форма.
Ни ссылки, ни формы не выводилось, скрипт действительно состоял из трех строк. Видимо RDS после загрузки страницы еще каким то образом запускал этот скрипт и в реферер заносился адрес, который я, собственно, и запускал
 
Сверху