4images Forum & Community
General / Allgemeines => Chit Chat => Topic started by: Valery on June 04, 2009, 10:22:40 PM
-
Мозг опух... 8O
Стояла 1.7.4, поставил заново 1.7.7, на локале отладил - все хорошо, базу переношу на хост - в ПХП админе вижу таблицы нормально, а часть данных (названия категорий и описания - кракозябрами). Чего мне копать????
-
Похоже на различные кодировки на локалке и на хосте. Проверьте, чтобы у баз были одинаковые кодировки перед переносом данных.
-
На сервере: (SHOW VARIABLES LIKE 'char%')
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database cp1251
character_set_filesystem binary
character_set_results utf8
character_set_server cp1251
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
На Денвере запрос выдает ошибку :( - я не знаю как посмотреть
Сравнение стоит utf8_general_ci и в таблицах тоже utf8_general_ci
-
Решил так:
файл db_mysql.php
function Db($db_host, $db_user, $db_password = "", $db_name = "", $db_pconnect = 0) {
$connect_handle = ($db_pconnect) ? "mysql_pconnect" : "mysql_connect";
if (!$this->connection = @$connect_handle($db_host, $db_user, $db_password)) {
$this->error("Could not connect to the database server ($db_host, $db_user).", 1);
}
if ($db_name != "") {
if (!@mysql_select_db($db_name)) {
@mysql_close($this->connection);
$this->error("Could not select database ($db_name).", 1);
}
}
//Установка кодировки utf8.
mysql_query('SET character_set_database = utf8');
mysql_query('SET NAMES utf8');
return $this->connection;
}
Все заработало, правда опять при добавлении записей в БД ругается, хотя вроде как записи добавляются в таблицу правильно.
При редактировании фото:
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match) SELECT DISTINCT 2040, word_id, 0, 0, 1 FROM 4images_wordlist WHERE word_text = 'пана�оник'
Duplicate entry '2040-1' for key 'image_word_id'
Фотография была отредактирована.
При добавлении фото:
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match) SELECT DISTINCT 2041, word_id, 0, 0, 1 FROM 4images_wordlist WHERE word_text = '��'
Duplicate entry '2041-8' for key 'image_word_id'
-
Строка:
mysql_query('SET character_set_database = utf8');
необязательна.
Кто бы еще это помог исправить:
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match) SELECT DISTINCT 2062, word_id, 0, 0, 1 FROM 4images_wordlist WHERE word_text = 'монако'
Duplicate entry '2062-10' for key 'image_word_id'
Фотография была отредактирована.