Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Разработка расширений / TYPO3 extension development (http://forum.typo3.ru/forumdisplay.php?f=38)
-   -   Ошибка при сохранении записи (модификация расширения) (http://forum.typo3.ru/showthread.php?t=9390)

thebat 06.04.2011 16:40

Ошибка при сохранении записи (модификация расширения)
 
Привет!

Есть проблема. Начал легкую модификацию расширения. На сервере с 4 версией базы все работало прекрасно. Перенес сайт на новый хост где стоит 5 версия базы. Вот тут то и начались проблемы ..., точнее одна проблема.

Добавляю запись (SysFolder) полет идет нормально, заполняю все необходимые поля и сохраняю...., а система мне в ответ:

2: SQL error:" '' ()

Запись в базу не пошла..., точнее не сохранилась. Я не программист ..., но простые вещи могу сделать ...

Вот тут то я и застрял! Не знаю что смотреть? где копать?

Андрей Аксенов 07.04.2011 10:09

я думаю, нужно посмотреть на базу данных из phpmyadmin - кодировка и т.п., попробовать выполнить запросы вручную. Пока как-то так.

thebat 07.04.2011 14:59

Это то что я делал:

Зашел с помощью "phpmyadmin" в и вручную вписал такой запрос:
Код:

UPDATE tx_riorganisation_staff
SET
country='4',
range='90',
profession='cvzxvcxzcvz',
position='zxcvzxvc',
phone='zvczxvc',
fax='xcvzxcv',
email='zxvczxvc',
businessunit='0',
l18n_diffsource='a:16:{s:16:"sys_language_uid";N;s:6:"hidden";N;s:9:"firstname";N;s:8:"lastname";N;s:7:"country";N;s:5:"image";N;s:11:"description";N;s:5:"range";N;s:5:"title";N;s:10:"profession";N;s:8:"position";N;s:5:"phone";N;s:3:"fax";N;s:5:"email";N;s:8:"location";N;s:12:"businessunit";N;}',
tstamp='1302169957'
WHERE
uid=16

В ответ получил сообщение базы:
Цитата:

#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 'range='90', profession='cvzxvcxzcvz', position='zxcvzxvc', phone='zvczxvc', ' at line 4
Потом подключил к системе модуль "debug" сделал то же самое, но только с помощью самого (модифицрованого) модуля..., а в ответ тоже самое:
Цитата:

===========
function/mode
===========
Pg exec_UPDATEquery(tx_riorganisation_staff) - alt_doc.php#319->process_datamap // class.t3lib_tcemain.php#905->updateDB // class.t3lib_tcemain.php#5607->exec_UPDATEquery
===========
$query
===========
UPDATE tx_riorganisation_staff
SET
country='4',
range='90',
profession='cvzxvcxzcvz',
position='zxcvzxvc',
phone='zvczxvc',
fax='xcvzxcv',
email='zxvczxvc',
businessunit='0',
l18n_diffsource='a:16:{s:16:"sys_language_uid";N;s :6:"hidden";N;s:9:"firstname";N;s:8:"lastname";N;s :7:"country";N;s:5:"image";N;s:11:"description";N; s:5:"range";N;s:5:"title";N;s:10:"profession";N;s: 8:"position";N;s:5:"phone";N;s:3:"fax";N;s:5:"emai l";N;s:8:"location";N;s:12:"businessunit";N;}',
tstamp='1302169957'
WHERE
uid=16
===========
SQL ERROR =
===========
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 'range='90',
profession='cvzxvcxzcvz',
position='zxcvzxvc',
pho' at line 4
===========
lastBuiltQuery
===========
UPDATE tx_riorganisation_staff
SET
country='4',
range='90',
profession='cvzxvcxzcvz',
position='zxcvzxvc',
phone='zvczxvc',
fax='xcvzxcv',
email='zxvczxvc',
businessunit='0',
l18n_diffsource='a:16:{s:16:"sys_language_uid";N;s :6:"hidden";N;s:9:"firstname";N;s:8:"lastname";N;s :7:"country";N;s:5:"image";N;s:11:"description";N; s:5:"range";N;s:5:"title";N;s:10:"profession";N;s: 8:"position";N;s:5:"phone";N;s:3:"fax";N;s:5:"emai l";N;s:8:"location";N;s:12:"businessunit";N;}',
tstamp='1302169957'
WHERE
uid=16
===========
debug_backtrace
===========
SC_alt_doc->processData#1498 // t3lib_TCEmain->process_datamap#319 // t3lib_TCEmain->updateDB#905 // ux_t3lib_DB->exec_UPDATEquery#5607 // ux_t3lib_DB->myDebug#180 // t3lib_div::debug_trail#787
===========
miliseconds
===========
0.379
У меня подозрение что проблема с полем "range" в таблице "tx_riorganisation_staff", но правда это все что я знаю, а что дальше ...???

dmartynenko 07.04.2011 15:08

Тут зарезервированное SQL имя используется как имя для поля, т.е. в данном случае range нужно написать как `range`

PS: лучше назовите поле по другому.

thebat 07.04.2011 15:38

Ребята спасибо.

Именно это и было проблемой. Поменял наименование поля и все заработало.

Большое спасибо.


Часовой пояс GMT +4, время: 19:51.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot