в sql 3 Insert в место одного, где искать ошибку?

seosniks
На сайте с 13.08.2007
Offline
389
833

Добрый день, проблема такова что при одном запуске скрипта, код ниже, в базу попадает 3 одинаковых INSERT

В первые такое вижу, где может быть ошибка?

<?php

$DBSERVER= "localhost";
$DBUSER= "root"; //Пользователь
$DBPASS =''; //ПАРОЛЬ
$DB = "111";//Имя базы данных
mysql_connect($DBSERVER,$DBUSER,$DBPASS) OR DIE("Нет соединения с базой данных");
mysql_select_db($DB) or die(mysql_error());

$sql ="INSERT INTO `news_company` VALUES('', '$title', '$message', '$date', '$photo_small', '$photo_big', '$views_amount');";
mysql_query($sql) or die(mysql_error());
mysql_close();
?>

CREATE TABLE `news_company` (
`record_id` int(10) unsigned NOT NULL auto_increment,
`title` tinytext NOT NULL,
`message` mediumtext NOT NULL,
`date` date NOT NULL default '0000-00-00',
`photo_small` varchar(255) default NULL,
`photo_big` varchar(255) default NULL,
`views_amount` int(11) NOT NULL,
UNIQUE KEY `record_id` (`record_id`),
KEY `date` (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

На экране выводится скриптом нормальный инсерт

INSERT INTO `news_company` VALUES('', '', '', '', '', '', '');

в базе же появляется их аж три

-- Дамп данных таблицы `news_company`

--

INSERT INTO `news_company` VALUES (1, '', '', '0000-00-00', '', '', 0);

INSERT INTO `news_company` VALUES (2, '', '', '0000-00-00', '', '', 0);

INSERT INTO `news_company` VALUES (3, '', '', '0000-00-00', '', '', 0);

~
На сайте с 04.07.2006
Offline
82
#1
seosniks:
Добрый день, проблема такова что при одном запуске скрипта, код ниже, в базу попадает 3 одинаковых INSERT
В первые такое вижу, где может быть ошибка?

Убедитесь в том, что скрипт не вызывается три раза. Это можно сделать так: открыть файл на append и записать в него символ. Дернуть скрипт и посмотреть, что будет в файле.

gormarket
На сайте с 29.12.2010
Offline
47
#2

Есть предположение что у Вас трижды запускается скрипт (т.е. источник проблемы не в приведенном коде).

это легко проверить, назначив какой либо переменной, которую пишите в базу, в начале скрипта (до открытия базы) рандомное значение (или до инсерта получите из базы количество записей в таблице и присвойте это значение одной из записываемых переменных).

Если в базе все три записи будут с разными значениями в этой переменной, то просто скрипт вызывается трижды.

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
seosniks
На сайте с 13.08.2007
Offline
389
#3
gormarket:
Есть предположение что у Вас трижды запускается скрипт (т.е. источник проблемы не в приведенном коде).

это легко проверить, назначив какой либо переменной, которую пишите в базу, в начале скрипта (до открытия базы) рандомное значение (или до инсерта получите из базы количество записей в таблице и присвойте это значение одной из записываемых переменных).

Если в базе все три записи будут с разными значениями в этой переменной, то просто скрипт вызывается трижды.

Спасибо за советы, положил скрипт в папку и все стало нормально.

Видимо как то он вызывается три раза.

Впервые такое вижу.

Хотя щас пробую, и в папке и в скрипте вызов идет 1, как надо.

Может глюк был какой и вызов шел три раза.

~
На сайте с 04.07.2006
Offline
82
#4
seosniks:
Спасибо за советы, положил скрипт в папку и все стало нормально.
Видимо как то он вызывается три раза.
Впервые такое вижу.

Хотя щас пробую, и в папке и в скрипте вызов идет 1, как надо.
Может глюк был какой и вызов шел три раза.

Всякое бывает. Например если htaccess шлет .* -> script.php, то браузер кроме страницы еще по собственной инициативе дергает favicon.ico, и что-то еще.

seosniks
На сайте с 13.08.2007
Offline
389
#5

Добрый день, снова какой то косяк, но походу виноват браузер Опера.

В общем код записывает 2 раза

test

test

<?php

$sup2=fopen("a.txt",'a+') or die ("Не возможно записать данные в файл!");
fwrite($sup2,"test\n");
fclose($sup2);
?>

другие браузеры IE xrom mozila пишут как надо.

Никто не сталкивался с таким?

Jekyll
На сайте с 04.05.2009
Offline
136
#6

Посмотрите в DragonFly (Ctrl+Shift+I) на вкладке Сеть, что происходит.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий