Ошибка в Coppermine Photo Gallery
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
строку:
753 | $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; |
И заменить на:
753 | $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
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | 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; } |
Заменить на:
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | 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; } |
Вы можете отслеживать комментарии к этой записи с помощью RSS 2.0. Вы можете оставить комментарий, или использовать trackback с вашего сайта.