CPG версии 1.5.6, когда выбран русский язык, может выдавать следующую ошибку при клике на пункт “Моя галерея” обычным зарегистрированным пользователем:
Критическая ошибка Произошла ошибка при обращении к базе данных
В случае включения режима отладки выдается дополнительная информация:
While executing query 'SELECT CONCAT(a.title, ' - Из категории: <i>', c.name, '</i>') AS cat_name FROM cpg1_albums AS a LEFT JOIN cpg1_categories AS c ON a.category=c.cid WHERE a.owner=2 ORDER BY a.category DESC , a.pos LIMIT 0,1' in index.php on line 754 mySQL error: Illegal mix of collations for operation 'concat'
Данную ошибку можно “вылечить” следующим образом:
Найти в index.php
строку:
$cat_name_sql = "SELECT CONCAT(a.title, '" . $lang_list_albums['from_category'] . "<i>', c.name, '</i>') AS cat_name FROM " . $CONFIG['TABLE_ALBUMS'] . " AS a LEFT JOIN " . $CONFIG['TABLE_CATEGORIES'] . " AS c ON a.category=c.cid WHERE a.owner=" . $USER_DATA['user_id'] . " ORDER BY a.category DESC , a.pos " . $limit;
И заменить на:
$cat_name_sql = "SELECT CONCAT(a.title, _utf8'" . $lang_list_albums['from_category'] . "<i>', c.name, '</i>') AS cat_name FROM " . $CONFIG['TABLE_ALBUMS'] . " AS a LEFT JOIN " . $CONFIG['TABLE_CATEGORIES'] . " AS c ON a.category=c.cid WHERE a.owner=" . $USER_DATA['user_id'] . " ORDER BY a.category DESC , a.pos " . $limit;
Либо, более корректный вариант:
в файле include/functions.inc.php
function cpg_db_connect() { global $CONFIG; $result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']); if (!$result) { return false; } if (!mysql_select_db($CONFIG['dbname'])) { return false; } return $result; }
Заменить на:
function cpg_db_connect() { global $CONFIG; $result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']); if (!$result) { return false; } mysql_query("SET NAMES utf8", $result); if (!mysql_select_db($CONFIG['dbname'])) { return false; } return $result; }