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;
}