ABO CMS4 на PHP5 MySQL5

Статус
В этой теме нельзя размещать новые ответы.

zevss

Писатель
Регистрация
21 Ноя 2007
Сообщения
6
Реакции
0
Насколько реально заставить ABO CMS4 работать на хостинге с PHP5 MySQL5.

Инсталяция с исправленим файла mod\documents\sql\documents_tables.php
строки `file_name` varchar(100) NOT NULL default "",
проходит .. но вот дальше ругается

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: NO) in /home2/tesser/public_html/inc/class.Main.php on line 3257
Database error: connection to database failed!
MySQL Error: ()
Session halted.

Проблема решена. не обратил внимание на то что несмотря на доступ на запись на хостинге ниче не записываось и не сохранялось.

конфиг после инсталяции нулевый.
папка tpl без шаблонов сайта

осталась пробелма с каталогом
Database error: Invalid SQL: SELECT DISTINCT p.property_id, p.range, pt.property_title, pt.property_name, pt.property_prefix, pt.property_suffix, pt.type, pdv.value FROM сайт_catalog_properties p, сайт_rus_catalog_properties_table pt LEFT JOIN сайт___ru_rus_catalog_properties_def_values pdv ON p.property_id = pdv.property_id WHERE p.search = 1 AND p.property_id = pt.id ORDER BY p.property_id, pdv.value
MySQL Error: 1054 (Unknown column 'p.property_id' in 'on clause')
Session halted.
 
Да, там много косяков с SQL-запросами. Поставь себе какой-нибудь php-отладчик (например, в состав Nusphere IDE входит хороший phpdebugger) и проследи откуда вызывается этот запрос.
 
осталась пробелма с каталогом
Database error: Invalid SQL: SELECT DISTINCT p.property_id, p.range, pt.property_title, pt.property_name, pt.property_prefix, pt.property_suffix, pt.type, pdv.value FROM сайт_catalog_properties p, сайт_rus_catalog_properties_table pt LEFT JOIN сайт___ru_rus_catalog_properties_def_values pdv ON p.property_id = pdv.property_id WHERE p.search = 1 AND p.property_id = pt.id ORDER BY p.property_id, pdv.value
MySQL Error: 1054 (Unknown column 'p.property_id' in 'on clause')
Session halted.

это связано с тем что в MySQL 5 поменялся приоритет запросов и теперь надо список таблиц после FROM брать в скобки, чтобы все работало нормально
проблему я лично решал следующим образом - перед выполнением все запросы стал обрабатывать вот так:
PHP:
if (strpos(strtoupper($query),"SELECT")!==false) {
    $query=preg_replace("/FROM([^\"\']+?)LEFT\s+?JOIN/is","FROM($1)LEFT JOIN",$query);
  }
 
  • Заблокирован
  • #4
проблему я лично решал следующим образом - перед выполнением все запросы стал обрабатывать вот так:
PHP:
if (strpos(strtoupper($query),"SELECT")!==false) {
    $query=preg_replace("/FROM([^\"\']+?)LEFT\s+?JOIN/is","FROM($1)LEFT JOIN",$query);
  }
мдя..
это в либах обработки каталога?
class.catalogDB.php ?
Это ж так нудно столько кода вставлять. Я утомлюсь =\
А нельзя перехватывать в 1 месте запрос и применить ваше преобразование?
 
нет ребятки - это не проблема MYSQL 5 это проблема кривой або - я эти проблемы решил.. надо немного переписать файлы с дампом базы в соотв модулях.
и все заработает как по мановению волшебной палочки!
 
  • Заблокирован
  • #6
нет ребятки - это не проблема MYSQL 5 это проблема кривой або
запросто! несоответствие полей в таблицах..
Открыла БД, посмотрела на соответствующую таблицу.

я так удивилась, что якобы все упирается только в версию..
------------
ладно. я не уверена что мне нужна именно ABO, как бы не горит, но не отказалась бы.
El_Magnifico, ты на каких условиях поделишься?;)
вкалывал-то много, нахаляву просить неудобно. Не обязан отдавать.
Деньги, бартер, тестить, диз - что?
 
запросто! несоответствие полей в таблицах..
Открыла БД, посмотрела на соответствующую таблицу.

я так удивилась, что якобы все упирается только в версию..
------------
ладно. я не уверена что мне нужна именно ABO, как бы не горит, но не отказалась бы.
El_Magnifico, ты на каких условиях поделишься?;)
вкалывал-то много, нахаляву просить неудобно. Не обязан отдавать.
Деньги, бартер, тестить, диз - что?

У тебя есть моя ася ;)
 
Бывают и такие приколы:

PHP:
function getProduct ($id = null) {
  global $admin;
  if ($admin) $active_str = " AND active = 1";
  if (!isset($id)) return FALSE;
  $sql = "
   SELECT
    a.id AS product_id,
    a.category_id AS product_category,
    a.product_title AS product_title,
    a.product_description AS product_description,
    a.image_middle AS image_middle,
    a.product_availability AS product_availability,
    a.rank AS product_rank,
    a.leader AS product_leader
   FROM
    $this->_tbl a
   WHERE
    a.id = ".$id."
    $active_str";
  $reqult = db_loadObject($sql, $this);
  return $result;
 }

Обратить внимание нужно на 2 последние строчки.
Файл: class.catalogDB.php в версии E-Commerce
 
и что там тебя смущает?
 
Смущает название переменной которой присваивается ответ и название переменной которая возвращается )
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху