Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: INSERT вставляет 2 строки вместо одной
 
 автор: mvlad   (27.12.2011 в 11:22)   письмо автору
 
 

Здравствуйте, нигде в интернете не могу найти ответ на свой вопрос, вы последняя моя надежда )

Почему то код:
    
$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 раза?

  Ответить  
 
 автор: cheops   (27.12.2011 в 14:41)   письмо автору
 
   для: mvlad   (27.12.2011 в 11:22)
 

Может перезагрузка хитрая, лишний AJAX-вызов или просто два раза используется include() с одним и тем же файлом? За MySQL таких сбоев не замечал - она скорее не вставит ничего, чем допустит вставить лишнюю запись.

  Ответить  
 
 автор: MVlad   (27.12.2011 в 20:45)   письмо автору
 
   для: cheops   (27.12.2011 в 14:41)
 

Скрипт состоит из трех строк... без аякса, без инклудов

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

Логи 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"

  Ответить  
 
 автор: cheops   (27.12.2011 в 22:02)   письмо автору
 
   для: MVlad   (27.12.2011 в 20:45)
 

А никаких хитрых плагинов нет, которые пытаются препарировать HTML-код на лету, искать ошибки валидации (обращаясь к сайту отдельно)? Есть возможность запустить скрипт в другом браузере?

  Ответить  
 
 автор: MVlad   (27.12.2011 в 22:09)   письмо автору
 
   для: cheops   (27.12.2011 в 22:02)
 

Спасибо, проблема решилась. Через мозиллу нормально работает, через хром - два раза сайт открывается. Точнее проблема в RDS баре... отключаешь бар - все работает )

  Ответить  
 
 автор: MVlad   (27.12.2011 в 22:21)   письмо автору
 
   для: cheops   (27.12.2011 в 22:02)
 

А если какой-нить пользователь сайта с хромом и рдс баром запустит этот скрипт на сайте, то у него тожу две записи появятся? Ну это я так... ради интереса спросил ) Можно ли от этого как то защититься?

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

  Ответить  
 
 автор: cheops   (27.12.2011 в 23:08)   письмо автору
 
   для: MVlad   (27.12.2011 в 22:21)
 

Смотреть нужно уже в конечном варианте, в конце концов, обычно POST-данные сбрасываются, можно вызвать обработчик средствами JavaScript (это уже вряд ли воспроизводимо). В общем лучше эту проблему разбираться действительно после того, как будет HTML-форма готова.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования