Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Перенос БД


Автор: Kirill Baranov 25.2.2006, 20:20
Здравствуйте. Я вот решил новую версию своего сайта сделать на движке Мамбо (не отсылайте меня на их форум, они не знают). Но проблема в том. что на старой версии сайта у меня около полутора тысяч новостей. Я написал скрипт, который бы переносил новости из старой таблицы в новую, уже существующую. Правда, есть загвоздка. В БД заносятся все поля кроме fulltext. При занесении колонки fulltext, появляется ошибка:

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 'fulltext,state,sectionid,mask,catid,created,created_by,modified,modified_by,publ' at line 1

Никто не знает в чем может быть дело? Просто я пробовал из текста и кавычки убирать...и всё...но даже просто несколькок символов в этот столбец невозможно занести, все эта ошибка появляется.

Вот структура таблицы, куды хочу все перенести:
CREATE TABLE `mos_content` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(100) NOT NULL default '',
`title_alias` varchar(100) NOT NULL default '',
`introtext` mediumtext NOT NULL,
`fulltext` mediumtext NOT NULL,
`state` tinyint(3) NOT NULL default '0',
`sectionid` int(11) unsigned NOT NULL default '0',
`mask` int(11) unsigned NOT NULL default '0',
`catid` int(11) unsigned NOT NULL default '0',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`created_by` int(11) unsigned NOT NULL default '0',
`created_by_alias` varchar(100) NOT NULL default '',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`modified_by` int(11) unsigned NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
`images` text NOT NULL,
`urls` text NOT NULL,
`attribs` text NOT NULL,
`version` int(11) unsigned NOT NULL default '1',
`parentid` int(11) unsigned NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
`metakey` text NOT NULL,
`metadesc` text NOT NULL,
`access` int(11) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_section` (`sectionid`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_state` (`state`),
KEY `idx_catid` (`catid`),
KEY `idx_mask` (`mask`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=38 ;

Почему не хотят данные заноситься в fulltext мне вообще непонятно

Автор: HalkaR 25.2.2006, 20:39
Попробуйте заключить названия полей в кавычки.

Автор: Kirill Baranov 25.2.2006, 20:42
вот сам код ... тут вроде все как надо (не первый раз делаю запросы). но даже пару символов не хотят в этот столбец становится...ну никак...не понимаю.

Код

$msq = mysql_query("INSERT INTO mos_content (title,title_alias,introtext,fulltext,publish_up) 
VALUES ('$line[headline]', '$line[headline]', '$shorttext','$line[fulltext]', '".$created[0]."-".$created[1]."-".$created[2]." 00:00:00')")
 or die (mysql_error());

Автор: Wolf1994 25.2.2006, 21:03
Возможно я не прав, но попробую предположить. По-моему массивы не признаются в MySQL-синтаксисе. Также, ещё, можно проверить данные перед занесением через mysql_real_escape_string.

Автор: Kirill Baranov 25.2.2006, 21:19
Wolf1994, да вроде признаются, ведь это та же самая переменная... я много где в собственном движке использовал в mysql запросах массивы. И все нормально было. Просто если вместо $line[fulltext] вставить любой текст...хоть даже одно слово...то все равно всплывет эта ошибка

Автор: HalkaR 25.2.2006, 23:28
Код

$msq = mysql_query("INSERT INTO mos_content (`title`,`title_alias`,`introtext`,`fulltext`,`publish_up`) 
VALUES ('$line[headline]', '$line[headline]', '$shorttext','$line[fulltext]', '".$created[0]."-".$created[1]."-".$created[2]." 00:00:00')")
 or die (mysql_error());

попробуй так

Автор: Kirill Baranov 26.2.2006, 00:07
HalkaR, невероятно!!! никогда б не додумался тильду использовать!!! ВСЕ ПОЛУЧИЛОСЬ! СПС!!! СТАВЛЮ ТЕБЕ ПЛЮС!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)