Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Данные в БД добавляются 1 раз
Форумы портала PHP.SU » » Вопросы новичков » Данные в БД добавляются 1 раз

Страниц (1): [1]
 

1. Edward - 18 Ноября, 2011 - 23:20:50 - перейти к сообщению
Здравствуйте. У меня очень странная проблема. На стационарном ПК и на ноутбуке установлен Denwer. Пишу, или пытаюсь написать свою личную небольшую CMS. Начал писать класс для работы с БД. И вот столкнулся с какой проблемой. Основной файл index.php, в него подключается файл header.php, в свою очередь в header.php подключается класс DB.php. Я тестирую метод insert() из класса DB. Так вот вся проблема в том, что при одном вызове insert() данные в БД вставляются 2 раза, через браузеры Chrome, 1 раз через FireFox, 1 раз через Safari при вызове скрипта через адресную строку и 2 раза при нажатии F5... На ноутбуке же через любой браузер и при любых условиях добавляется как положено 1 раз.

В чем может быть проблема ? В ПК, Denwer`е, погоде Закатив глазки ?

Хочу просто эту проблему не оставлять, а решить и понять, почему все происходит.

Вот метод, который я тестирую

PHP:
скопировать код в буфер обмена
  1.  
  2. function insert(
  3.                 $table = '', // Таблица, в которую вставляем данные
  4.                 $values // Строка со значениями, которые мы вставляем
  5.         ) {
  6.                 // Защита строки от SQL Inj
  7.                 //$values = mysql_real_escape_string( $values );
  8.                
  9.                 // Делаем запрос
  10.                 mysql_query( "INSERT INTO `" . $table . "` VALUES ( NULL, '" . $values . "' ) " ) OR die( mysql_error() . '2h0y8h2qibo20=gh4' );
  11.                
  12.                 return true;
  13.                
  14.         }
  15.  


Вот фрагмент кода ( header.php ), где вызывается метод:

PHP:
скопировать код в буфер обмена
  1.  
  2. // Подключаемся к БД
  3. $conn = new DB( DB_HOST, DB_USER, DB_PASS, DB );
  4. $conn->connect();
  5.  
  6.  
  7. $conn->insert( "test_table", "Homon" );
  8.  


А вот файл index.php, куда подключается файл header.php:

PHP:
скопировать код в буфер обмена
  1.  
  2. // Подключаем /engine/header.php
  3. if ( !require_once( DOC_ROOT . '/engine/header.php' ) ) { exit( 'Файл <b>/engine/header.php</b> не подключен' ); }
  4.  
2. De-Luxis - 19 Ноября, 2011 - 08:44:23 - перейти к сообщению
если ты F5 нажимаешь, то страница обновляется. И запрос посылается повторно. Вот тебе и два раза.

 

Powered by ExBB FM 1.0 RC1