Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
tikey

Ошибка синтаксиса команды в моде наград

Рекомендованные сообщения

08/25/10 14:30 (изменено)

C горем-пополам модуль наград был установлен (наверное надоел всем с ним).

Решение проблемы я сделал таким:

1. С mysql_tables.php снес строку

awards_upgrade_mid int(10) NOT NULL default '0',

2.

$SQL[] = "ALTER TABLE ibf_members ADD awards_cache MEDIUMTEXT NOT NULL";

заменил на

$SQL[] = "ALTER TABLE ibf_members ADD awards_cache MEDIUMTEXT NOT NULL;

После этого мод стал.

Но теперь ошибка другая:

Во время регистрации, после заполнения полей и нажатии кнопки "Зарегистрироваться":

Ошибка при работе с базой данных
Возникла проблема при работе с базой данных.
Вы можете попробовать обновить эту страницу, нажав сюда

 

Пояснения, кода ошибки нет. Только этот текст. В чем может быть проблема? :)

Мод не повлиял ли на работу регистрационки?

И еще, мод не распознает русского описания наград.

Изменено пользователем tikey

Поделиться сообщением


Ссылка на сообщение

Лог где?

В папке кэш ищите лог с номером ошибки.

Поделиться сообщением


Ссылка на сообщение
08/25/10 15:11 (изменено)

Затер предпост по неактуальности.

Вобщем на данный момент проблема такая:

 

Код:

 

<?php

$SQL[] = "CREATE TABLE ibf_awards_upgrade_history (
 awards_upgrade_id int(10) NOT NULL auto_increment,
 awards_version_id int(10) NOT NULL default '0',
 awards_version_human varchar(200) NOT NULL default '',
 awards_upgrade_date int(10) NOT NULL default '0',
 awards_upgrade_mid int(10) NOT NULL default '0',
 awards_upgrade_notes text NOT NULL,
 PRIMARY KEY  (awards_upgrade_id)
) TYPE=MyISAM AUTO_INCREMENT=1 ;";

$SQL[] = "CREATE TABLE `ibf_awards` (
 `aid` smallint(6) NOT NULL auto_increment,
 `mid` bigint(10) NOT NULL default '0',
 `cid` varchar(50) NOT NULL default '0',
 `awards_id` int(10) NOT NULL default '0',
 `mname` varchar(255) NOT NULL default '',
 `reason` text NOT NULL,
 `edit_time` int(10) NOT NULL default '0',
 `edit_mid` int(10) NOT NULL default '0',
 `add_mem_award_time` int(10) NOT NULL default '0',
 `comments` int(10) NOT NULL default '0',
 `comments_mail_last_send` int(10) NOT NULL default '0',
 PRIMARY KEY  (`aid`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;";

$SQL[] = "CREATE TABLE ibf_awards_info (
 id smallint(6) NOT NULL auto_increment,
 title varchar(100) NOT NULL default '',
 img varchar(100) NOT NULL default '',
 img_h int(10) NOT NULL default '0',
 img_w int(10) NOT NULL default '0',
 img_thumbnail varchar(100) NOT NULL default '',
 thumbnail_h int(10) NOT NULL default '0',
 thumbnail_w int(10) NOT NULL default '0',
 awards_status TINYINT( 1 ) NOT NULL DEFAULT '0',
 PRIMARY KEY  (id)
) TYPE=MyISAM AUTO_INCREMENT=1 ;";

$SQL[] = "CREATE TABLE `ibf_awards_comments` (
 `pid` int(10) NOT NULL auto_increment,
 `append_edit` tinyint(1) default '0',
 `edit_time` int(10) default NULL,
 `author_id` mediumint(8) NOT NULL default '0',
 `author_name` varchar(32) default NULL,
 `use_sig` tinyint(1) NOT NULL default '0',
 `use_emo` tinyint(1) NOT NULL default '0',
 `ip_address` varchar(16) NOT NULL default '',
 `post_date` int(10) default NULL,
 `comment` text,
 `approved` tinyint(1) default NULL,
 `award_id` int(10) NOT NULL default '0',
 `award_info_id` int(10) NOT NULL default '0',
 `edit_name` varchar(255) default NULL,
 PRIMARY KEY  (`pid`),
 KEY `award_id` (`award_id`,`author_id`),
 KEY `author_id` (`author_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;";


$SQL[] = "ALTER TABLE ibf_members ADD awards_dig INT(10) NOT NULL DEFAULT '0'";
$SQL[] = "ALTER TABLE ibf_members ADD awards_tracker TINYINT( 1 ) DEFAULT '1'";
$SQL[] = "ALTER TABLE ibf_members ADD awards_cache mediumtext not null default ''";
$SQL[] = "ALTER TABLE ibf_members ADD awards_notice_type VARCHAR(10) DEFAULT 'pm'";

$SQL[] = "ALTER TABLE ibf_members ADD awards_comments tinyint(1) default '1'";
$SQL[] = "ALTER TABLE ibf_members ADD awards_comments_notice tinyint(1) default '1'";

$SQL[] = "ALTER TABLE ibf_groups ADD can_access_awcp TINYINT( 1 ) DEFAULT '0'";
$SQL[] = "ALTER TABLE ibf_groups ADD g_awards_edit TINYINT( 1 ) DEFAULT '0'";
$SQL[] = "ALTER TABLE ibf_groups ADD g_awards_delete TINYINT( 1 ) DEFAULT '0'";

$SQL[] = "ALTER TABLE ibf_groups ADD g_awards_add_comments tinyint(1) NOT NULL default '0'";
$SQL[] = "ALTER TABLE ibf_groups ADD g_awards_has_comments tinyint(1) default '0'";
$SQL[] = "ALTER TABLE ibf_groups ADD g_awards_mod_comments tinyint(1) default '0'";
$SQL[] = "ALTER TABLE ibf_groups ADD g_awards_mod_own_comments tinyint(1) default '0'";


?>

 

При установке невозможно выполнить 2 запроса:

 

$SQL[] = "CREATE TABLE ibf_awards_upgrade_history (
 awards_upgrade_id int(10) NOT NULL auto_increment,
 awards_version_id int(10) NOT NULL default '0',
 awards_version_human varchar(200) NOT NULL default '',
 awards_upgrade_date int(10) NOT NULL default '0',
 awards_upgrade_mid int(10) NOT NULL default '0',
 awards_upgrade_notes text NOT NULL,
 PRIMARY KEY  (awards_upgrade_id)
) TYPE=MyISAM AUTO_INCREMENT=1 ;";

 

 

 

Причина 1 - неверный синтаксис

awards_upgrade_notes text NOT NULL.

 

=====

 

Причина 2 - неверный синтаксис

$SQL[] = "ALTER TABLE ibf_members ADD awards_cache mediumtext not null default ''";

 

Версия мускула моя:

C:\Users\Администратор>mysqladmin
mysqladmin Ver 8.42 Distrib 5.1.40, for Win32 on ia32
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

 

 

Что делать в этом случае?

Изменено пользователем tikey

Поделиться сообщением


Ссылка на сообщение
08/25/10 15:52 (изменено)

Кстати, лог ошибки на выполнения запроса вручную такой:

mysql> ALTER TABLE ibf_members ADD awards_cache mediumtext not null default '';
ERROR 1101 (42000): BLOB/TEXT column 'awards_cache' can't have a default value

 

Проблему решил так:

mysql> ALTER TABLE ibf_members ADD awards_cache mediumtext not null;

Т.е. убрал

default ''

.

 

Но как решить проблему номер раз?

Изменено пользователем tikey

Поделиться сообщением


Ссылка на сообщение
08/26/10 16:01 (изменено)

После установки мода проблемы с регистрацией. Лог:

 

Код ошибки: 1364
Сообщение сервера: Field 'awards_cache' doesn't have a default value
IP-адрес клиента: ---
Страница: /admin/index.php?adsess=765c0aa043f85b3e2448f1f8884e98f9
Запрос: INSERT INTO ibf_members (name,members_l_username,members_display_name,members_l_display_name,member_login_key,email,mgroup,posts,joined,ip_address,time_offset,view_sigs,coppa_user,email_pm,view_img,view_avs,restrict_post,view_pop,msg_total,new_msg,members_editor_choice,language,id) VALUES('123123123123123123','123123123123123123','123123123123123123','123123123123123123','61c58a23810f3592e38b9aeb70c40a06','123123123@ya.ru',3,0,1282834627,'109.87.140.2',3,1,0,1,1,1,0,1,0,0,'std','ru',12)

Подскажите, где добавить в запросе инфу awards_cache и где редактировать запрос регистрации в форуме самом.. Спасибо!

Изменено пользователем tikey

Поделиться сообщением


Ссылка на сообщение
Подскажите, где добавить в запросе инфу awards_cache и где редактировать запрос регистрации в форуме самом.. Спасибо!

./sources/action_public/register.php

Все запросы к БД делаются через класс $this->ipsclass->DB

Но сомневаюсь что это вам чем нибудь поможет.

Поделиться сообщением


Ссылка на сообщение
08/26/10 20:57 (изменено)

./sources/action_public/register.php

Все запросы к БД делаются через класс $this->ipsclass->DB

Но сомневаюсь что это вам чем нибудь поможет.

Ага проблема была в другом: синтаксис устновщика предполагал выполнить A

LTER TABLE ibf_members MODIFY awards_cache MEDIUMTEXT  NULL

, но не

ALTER TABLE ibf_members MODIFY awards_cache MEDIUMTEXT NOT  NULL default ''

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

Наконец то форум наград мне поддался всецело. Пишите, теперь готов сам помогать по нем. Можно в аську ломиться. :P

Отдельная благодарность L-7, за то что откликнулся даже по истечению актуальности вопроса.

Тему можно закрыть.

Изменено пользователем tikey

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...