ABO CMS4 на PHP5 MySQL5

Тема в разделе "ABO CMS", создана пользователем zevss, 28 фев 2008.

Статус темы:
Закрыта.
  1. zevss

    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.
     
  2. MARDEN

    MARDEN Постоялец

    Регистр.:
    18 ноя 2006
    Сообщения:
    81
    Симпатии:
    7
    Да, там много косяков с SQL-запросами. Поставь себе какой-нибудь php-отладчик (например, в состав Nusphere IDE входит хороший phpdebugger) и проследи откуда вызывается этот запрос.
     
  3. Tauri

    Tauri Писатель

    Регистр.:
    25 апр 2008
    Сообщения:
    7
    Симпатии:
    1
    это связано с тем что в MySQL 5 поменялся приоритет запросов и теперь надо список таблиц после FROM брать в скобки, чтобы все работало нормально
    проблему я лично решал следующим образом - перед выполнением все запросы стал обрабатывать вот так:
    PHP:
    if (strpos(strtoupper($query),"SELECT")!==false) {
        
    $query=preg_replace("/FROM([^\"\']+?)LEFT\s+?JOIN/is","FROM($1)LEFT JOIN",$query);
      }
     
    Лариса нравится это.
  4. Лариса

    Лариса Читатель

    Заблокирован
    Регистр.:
    21 сен 2007
    Сообщения:
    390
    Симпатии:
    128
    мдя..
    это в либах обработки каталога?
    class.catalogDB.php ?
    Это ж так нудно столько кода вставлять. Я утомлюсь =\
    А нельзя перехватывать в 1 месте запрос и применить ваше преобразование?
     
  5. El_Magnifico

    El_Magnifico Команданте

    Регистр.:
    1 сен 2006
    Сообщения:
    650
    Симпатии:
    484
    нет ребятки - это не проблема MYSQL 5 это проблема кривой або - я эти проблемы решил.. надо немного переписать файлы с дампом базы в соотв модулях.
    и все заработает как по мановению волшебной палочки!
     
  6. Лариса

    Лариса Читатель

    Заблокирован
    Регистр.:
    21 сен 2007
    Сообщения:
    390
    Симпатии:
    128
    запросто! несоответствие полей в таблицах..
    Открыла БД, посмотрела на соответствующую таблицу.

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

    El_Magnifico Команданте

    Регистр.:
    1 сен 2006
    Сообщения:
    650
    Симпатии:
    484
    У тебя есть моя ася ;)
     
  8. Nabludatel

    Nabludatel Создатель

    Регистр.:
    2 июн 2006
    Сообщения:
    22
    Симпатии:
    1
    Бывают и такие приколы:

    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
     
  9. El_Magnifico

    El_Magnifico Команданте

    Регистр.:
    1 сен 2006
    Сообщения:
    650
    Симпатии:
    484
    и что там тебя смущает?
     
  10. Nabludatel

    Nabludatel Создатель

    Регистр.:
    2 июн 2006
    Сообщения:
    22
    Симпатии:
    1
    Смущает название переменной которой присваивается ответ и название переменной которая возвращается )
     
Статус темы:
Закрыта.