PHP.SU

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

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

> Найдено сообщений: 8
Seruy Отправлено: 14 Декабря, 2009 - 04:43:35 • Тема: Проблема с Mysql после обновления Linux • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 24
Обновился сетевой ДС портал (он на Cobreeder), вернее его площадку, изменилось:

PHP 5.3.1 (cli) (built: Nov 28 2009 08:37:48)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

и

Server version: Apache/2.2.3
Server built: Nov 12 2009 18:43:41

Начинаю в админке править опции, данны не пишутся в Mysql я полез в phpmyadmin, нашёл таблицу опций, окрываю, меняю к примеру даже название сайта, нажимаю Ок и выдаёт:

Цитата:
Ошибка

Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.

ERROR: Незакрытая кавычка @ 89
STR: '
SQL: SELECT * FROM `cobreeder`.`cb_options` WHERE CONVERT(`cb_options`.`name` USING utf8) = \'name\' AND CONVERT(`cb_options`.`group_name` USING utf8) = \'site\';


SQL-запрос:

SELECT * FROM `cobreeder`.`cb_options` WHERE CONVERT(`cb_options`.`name` USING utf8) = \'name\' AND CONVERT(`cb_options`.`group_name` USING utf8) = \'site\';

Ответ MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'name\' AND CONVERT(`cb_options`.`group_name` USING utf8) = \'site\'' at line 1


Какая кавычка, вот таблица базы данных чистая, ничего не понимаю:

CODE (text):
скопировать код в буфер обмена
  1. DROP TABLE IF EXISTS `cb_options`;
  2. CREATE TABLE IF NOT EXISTS `cb_options` (
  3. `name` varchar(50) NOT NULL default '',
  4. `group_name` varchar(50) NOT NULL default '',
  5. `title` varchar(255) NOT NULL default '',
  6. `value` text NOT NULL,
  7. `type` enum('integer','string','text','boolean') NOT NULL default 'string',
  8. `extra` text NOT NULL,
  9. `position` smallint(5) unsigned NOT NULL default '0',
  10. PRIMARY KEY (`name`,`group_name`)
  11. ) TYPE=MyISAM;


Я пошёл другим путём, ставлю чистую базу данных, и тоже самое. Что за ошибка появилась ума не приложу, нет вроде её, и работало php 5.1 постарее. Кодировки не менялись, Mysql был тоже 5 до этого и всё работало.


Вот часть куска кода php который отвечает за передачу данных в mysql и выдаёт: Опции не переданы!

CODE (text):
скопировать код в буфер обмена
  1. public function edit()
  2.     {
  3.         $Template = Registry::instance()->Template;
  4.         $Options = Registry::instance()->Options;
  5.  
  6.         $options = request('options', 'P');
  7.         if (!$options)
  8.         {
  9.             $Template->error('Опции не переданы!');
  10.         }
  11.  
  12.         $all_options = $Options->getAll();
  13.         $clean = array();
  14.         foreach ($options as $option_group => $options)
  15.         {
  16.             foreach ($options as $option => $value)
  17.             {
  18.                 if (!isset($all_options[$option_group]['options'][$option]))
  19.                 {
  20.                     continue;
  21.                 }
  22.  
  23.                 $clean[$option_group][$option] = $value;
  24.             }
  25.         }


Но я не пойму почему phpmyadmin не даёт править даже если ошибка, ведь по теории лезешь править её, накой его тогда вообще придумали...
Ещё самое интересное, в phpmyadmin делаешь Анализ таблицы или Проверить таблицы - пишет что норм, читаемо и в порядке.

Я пошёл другим путём, ставлю чистую базу данных, и тоже самое. Что за ошибка появилась ума не приложу, нет вроде её. Уже 5 утра, ничего не могу придумать, может у кого есть мысли?
(Добавление)
Есть одно но, когда ставлю в любом месте, либо php.ini либо в .htaccess показывать ошибки, портал вообще не отрывается "Не отобразить страницу". Если написать в options.php в самом начале скрипта две строчки
ini_set('display_errors',1);
error_reporting(E_ALL ^E_NOTICE);
Эти две строки заставят выводить сообщения обо всех критических ошибках на экран.
Если никаких ошибок не выведется, надо написать
error_reporting(E_ALL); - вообще админка не открывается.

В коде собак нет, есть емейл в опциях, но уже в админке, но как убрать если не даёт phpmyadmin редактировать теблицу?

Пошёл бы я к разабам, но они давно закрыты, Кобры вообще существовали несколько лет и свернулись. Портал вообщем работоспостобный, постят сетевики пабли и каменты а вот опции , основные, названеи сайта и т.д., не хотел редактироваться. Вот и пришёл к вам.
Seruy Отправлено: 17 Сентября, 2009 - 10:07:33 • Тема: PHP Notice: Use of undefined constant _ROTATE_ • Форум: Регулярные выражения

Ответов: 3
Просмотров: 774
Парни а что в этом скрипте нужно поправить, чтобы бекапы сохранялись не ежедневно а ежемесячно.
Щас он в крон записан на ежедневное исполнение и хранит исправно 30 бекапов за 30 последних дней, и я его оставлю в работе.

Но хочу его переименовать, подправить\изменить на ежемесячное исполнение в кроне, и чтобы он подстраховал скажем делая бекапы раз в месяц за последние пол года.

mysqldbbackup.php выглядит так:

Спойлер (Отобразить)


Файл настроек бекапа mysqldbbackup.ini выглядит так:

Спойлер (Отобразить)

- removedays отвечает за настройку дня недели, в которые будет проводиться удаление
старых файлов резервных копий. Дни недели указываются через запятую (0 - воскресенье). Можно
указать "*", что означает каждый день;
- nob (number of backups) отвечает за количество хранимых бекапов;
- compress - коэффициент сжатия (0 - 9);
- dbuser - имя суперполльзователя (обычно root);
- dbpass - пароль для указанного пользователя.
Seruy Отправлено: 30 Августа, 2009 - 18:11:54 • Тема: DB Error: no such field • Форум: PEAR и PECL

Ответов: 6
Просмотров: 6519
Champion пишет:
вывести - это вставить echo в нужное место. Потом надо скопировать и вставить PMA или чем ты еще пользуешься. Если это SELECT, ничего плохого не произойдет. Он только читает и ничего не меняет.
А тем более запрос даже не выполняется, а выдает ошибку. Ничего плохого тем более не произойдет))


Обязательно попробую завтра на работе и отпишусь. Спасибо за помощь Улыбка
Seruy Отправлено: 30 Августа, 2009 - 11:35:26 • Тема: DB Error: no such field • Форум: PEAR и PECL

Ответов: 6
Просмотров: 6519
Champion пишет:
выведи получающийся запрос на экран и выполни его в СУБД


Впринципе я понимаю о чём речь, но это выше моих знаний, хотя я бекаплюсь но чёт не то сделаю и боюсь напортачу. Я думаю кто разбирается надо с тем связаться с большой получки Улыбка и он всё поправит на договорную цену. А так я чуствую не сделаю или буду пол года так ещё делать Улыбка
Seruy Отправлено: 29 Августа, 2009 - 10:21:33 • Тема: DB Error: no such field • Форум: PEAR и PECL

Ответов: 6
Просмотров: 6519
Если я правильно пошёл запрос:

CODE (text):
скопировать код в буфер обмена
  1.        $DB = Registry::instance()->DB;
  2.  
  3.         // first get violation types
  4.  
  5.         $evaltypes = $DB->getAll("SELECT `id`, `description`, `points` FROM ".PREFIX."evaluation_types ORDER BY `id` ASC");
  6.  
  7.         //second get list of violations
  8.  
  9.         $evaluations = $DB->getAll("
  10.                 SELECT
  11.                 `e`.`id`,
  12.             `e`.`date`,
  13.             `e`.`comment`,
  14.                 `e`.`publication_link`,
  15.             `u`.`username` AS `investigated`,
  16.             `et`.`description`,
  17.                 `et`.`points`,
  18.             `m`.`username` AS `moderator`
  19.             FROM
  20.             `".PREFIX."evaluations` e,
  21.             `".PREFIX."users` u,
  22.             `".PREFIX."users` m,
  23.             `".PREFIX."evaluation_types` et
  24.                     WHERE
  25.             `e`.`user_id`=`u`.`id`
  26.             AND
  27.                 `e`.`evaluation_type_id`=`et`.`id`
  28.             AND `e`.`moderator_id` = `m`.`id`
  29.             AND `u`.`id`='".request("user_id")."';");
  30.        //print_r($evaluations);
  31.         $total_points = 0;
  32.         if ($evaluations)
  33.         {
  34.                 for($i=0;$i<count($evaluations);$i++)
  35.                 {
  36.                 $total_points += $evaluations[$i]["points"];
  37.                 }
  38.         }
  39.  
  40.         $actions = $DB->getAll("SELECT `more_or_less`, `than_value`, `move_to_usergroup` FROM `".PREFIX."action_list`;");
  41.         $usergroups = $DB->getAll("SELECT `id`, `title` FROM ".PREFIX."usergroups ORDER BY `id` ASC");
  42.  
  43.         $Template = Registry::instance()->Template;
  44.         $Template->assign('total_points', $total_points);
  45.         $Template->assign('user_id', request('user_id'));
  46.         $Template->assign('evaluations', $evaluations);
  47.         $Template->assign('evaltypes', $evaltypes);
  48.         $Template->assign('action_report', $action_report);
  49.         $Template->assign('actions', $actions);
  50.         $Template->assign('usergroups', $usergroups);


а уже как возмёт инфу с БД то уже формирование в тимплейт страницу:

CODE (text):
скопировать код в буфер обмена
  1.         $Template->display('privatecase.tpl');


Ща сгляну что там в БД. Жаль логги не пишет БД об ошибке, сразу бы узнать на чём затык.
Seruy Отправлено: 28 Августа, 2009 - 23:34:07 • Тема: DB Error: no such field • Форум: PEAR и PECL

Ответов: 6
Просмотров: 6519
При открытии статистики любого пользователя сайта, вылетает ошибка: DB Error: no such field

Прошёлся по Рунету, вычитал это т.к., сайт использует PEAR:

This prints:

DB Error: no such field
To print out an error message and then quit, use PEAR_ERROR_DIE. You can also use the PEAR_ERROR_CALLBACK constant to run a custom function when an error is raised. This custom function can print out even more detailed information:

function pc_log_error($error_obj) {
error_log(sprintf("%s (%s)",$error_obj->message,$error_obj->userinfo));
}

$dbh->setErrorHandling(PEAR_ERROR_CALLBACK,'pc_log_error');
$sth = $dbh->query("SELECT aroma FROM zodiac WHERE element LIKE 'fire'");

Сама страничка privatecase.php, что должна выводить информауию выглядит так:

Спойлер (Отобразить)


Это страничка отрывает "Личное дело" (зарегистрированных пользоваталей) , кто сколько нафлудил, публикаций оставил и т.д.

Есть надежда узнать что он просит?
Seruy Отправлено: 25 Августа, 2009 - 17:07:46 • Тема: PHP Notice: Use of undefined constant _ROTATE_ • Форум: Регулярные выражения

Ответов: 3
Просмотров: 774
Roler пишет:
define("_ROTATE_", 1);


Премного багодарен вам сударь, пошёл править Улыбка

Спустя 5 минут: Низкий поклон вам, и респект за помощь и терпение к нам смертным ;) Всё работает без запиночки Улыбка
Seruy Отправлено: 25 Августа, 2009 - 15:20:59 • Тема: PHP Notice: Use of undefined constant _ROTATE_ • Форум: Регулярные выражения

Ответов: 3
Просмотров: 774
На что то ругается PHP в скрипте дамба Mysql, непойму что ему не нравится.

Сама ошибка выводится в консоли при дампе, цитата:

# ./mysqldbbackup.php
PHP Notice: Use of undefined constant _ROTATE_ - assumed '_ROTATE_' in /var/backup/mysqldbbackup.php on line 88

[ Processing database id 'dle' ]
Removing old backups...
Dumping database 'dle'...
Restoring owner...

[ Processing database id 'magneto' ]
Removing old backups...
Dumping database 'magneto'...
Restoring owner...

Всё успешно задампилось, но ошибка грозит на строку 88 а line 88 такова: define(_ROTATE_, 1);

Весь скрипт дампа:

Спойлер (Отобразить)


Скрипт делает дампы, всё номруль, но хочется ошибку убить, подскажите что ему не нравится в ROTATE?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB