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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: востановление таблицы в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
daglas1
Отправлено: 17 Июля, 2013 - 22:23:20
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




Всем привет.
Иногда из БД исчезает таблица, иногда парочку. Сильно прожорливые скрипты, иногда БД не вытягивает все запросы и старая таблица удаляется а новая не успевает появится. И так и не появляется.
Вобщем написал скрипт и повешал его на крон.
ЧТобы скрипт востанавливал таблицу.
Но получилась другая проблема, скрипт в таблицу добавляет дубликаты. Т.е. каждый день вставляет одно и тоже.
Хотя внутри скрипта стоит проверка содержимого таблицы.
PHP:
скопировать код в буфер обмена
  1.  
  2. try {
  3.         $sth = $db->prepare("select count(cod) from mytable");
  4.        
  5.         $sth->execute();
  6.         $row = $sth->fetch();
  7.         $x=$row[0];
  8.         echo $x;
  9.  
  10.  
  11. } catch (Exception $e) {
  12.     echo $e->getMessage(); //выведет либо сообщение об ошибке подключения, либо об ошибке выбора
  13.  
  14. }
  15.  
  16. if (strlen($x)>0) die();
  17. if (strlen($x)==0)
  18.                                 {
  19.                                 echo "no table<br>";
  20.         $sth = $db->prepare("CREATE TABLE `mytable` ")
  21.         $sth->execute();
  22.         //################################################                     
  23.         $sth = $db->prepare(" insert into mytable");
  24.         $sth->execute();
  25.         echo "<br>data inserted<br>";
  26.                                 }
  27.  


Вот код, мускульный запросы упрощенны
 
 Top
EuGen Администратор
Отправлено: 17 Июля, 2013 - 22:55:56
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




daglas1
Postgres? Транзакции
?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
caballero
Отправлено: 18 Июля, 2013 - 00:58:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Иногда из БД исчезает таблица, иногда парочку. Сильно прожорливые скрипты, иногда БД не вытягивает все запросы и старая таблица удаляется а новая не успевает появится.

с чего бы это исчезать таблицам?


и что за бредовый код - то что в таблице 0 записей не означает что ее нет.
И с чего ты взял что получишь Exception если не будет таблицы в БД


Цитата:
Транзакции
?

ну, это мускул а не оракл - тут транзакции на DDL не распространяются


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
EuGen Администратор
Отправлено: 18 Июля, 2013 - 09:23:08
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Верно, ни я, ни автор не уточнили. Я имел ввиду, правда, не Oracle, а Postgres


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
daglas1
Отправлено: 18 Июля, 2013 - 09:48:33
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




caballero пишет:
Цитата:
Иногда из БД исчезает таблица, иногда парочку. Сильно прожорливые скрипты, иногда БД не вытягивает все запросы и старая таблица удаляется а новая не успевает появится.

с чего бы это исчезать таблицам?
и что за бредовый код - то что в таблице 0 записей не означает что ее нет.
И с чего ты взял что получишь Exception если не будет таблицы в БД
Цитата:
Транзакции
?

ну, это мускул а не оракл - тут транзакции на DDL не распространяются

Таблицы исчезают в следствии работы скриптов. Скприт каждый день удаляет старую таблицу и на основе суровых выборок создает новую таблицу. В послднее время у него не получается создавать эти таблицы. Большую часть скриптов написали до меня на перл.
Я их не хочу трогать. Как вариант БД не тянет таких нагрузок, хотя сервак достаточно мощный.
Касательно бредовости кода. Код не бредовый а имеет место частный случай.
Таблица у конкретном случае никогда не бывает пустой. Или она есть и в ней данные или ее нет вообще. Тут уже многодневные наблюдения за сайтом конкретным.
Касательно эксепшинов поставил их на всякий случай. Они ведь не мешают?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB