Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: крокозяблы в таблице mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: в БД mysql ubuntu не появляются русские буквы
yogeswar
Отправлено: 19 Декабря, 2012 - 06:48:19
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Пользуюсь Ubuntu.
Где бы не читал про эту проблему ее исправить не удалось.
В таблице phpMyAdmin(!) вместо русских букв - крокозяблы.
Привожу пример создания таблицы.
<?php
// Создание структуры Базы Данных гостевой книги
define("DB_HOST", "localhost");
define("DB_LOGIN", "wasy");
define("DB_PASSWORD", "fedy");
define("DB_NAME", "klava");

mysql_connect(DB_HOST, DB_LOGIN, DB_PASSWORD) or die(mysql_error());

$sql = 'CREATE DATABASE ' . DB_NAME;
mysql_query($sql) or die(mysql_error());

mysql_select_db(DB_NAME) or die(mysql_error());

$sql = "
CREATE TABLE catalog (
id int(11) NOT NULL auto_increment COMMENT 'Идентификатор ',
familiy varchar(50) NOT NULL default '' COMMENT 'Фамилия',
imy varchar(50) NOT NULL default '',
otchestvo varchar(50) NOT NULL default '',
PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ";

mysql_query($sql) or die(mysql_error());

mysql_close();

print '<p>Структура базы успешно создана!</p>';
?>
Скачать файл: wot.php
Скачан раз: 39

(Отредактировано автором: 19 Декабря, 2012 - 06:52:45)

 
 Top
Vinyl
Отправлено: 19 Декабря, 2012 - 07:04:10
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Попробуйте после mysql_connect()
PHP:
скопировать код в буфер обмена
  1. mysql_query ("set character_set_client='utf8'");
  2. mysql_query ("set character_set_connection='utf8'");
  3. mysql_query ("set character_set_results='utf8'");
  4. mysql_query ("set character_set_database='utf8'");
  5. mysql_query ("set collation_connection='utf8_general_ci'");

При условии, ессесно, что БД в UTF-8


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
yogeswar
Отправлено: 19 Декабря, 2012 - 07:37:58
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Пояснения стали русскими (COMMENT 'Идентификатор ', COMMENT 'Фамилия', ). Т.е. слова 'Идентификатор ' и 'Фамилия' появились по-русски, а записи в самих ячейках - крокозяблы.
 
 Top
Vinyl
Отправлено: 19 Декабря, 2012 - 07:42:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Я не вижу INSERT в этом скрипте. Если записи уже в базе и уже крокозяблы, то перезаливать данные заново (насколько мне известно). Если у Вас другой скрипт заливает данные, в нем нужно прописать то же самое после mysql_connect()


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
yogeswar
Отправлено: 19 Декабря, 2012 - 07:50:19
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Заливка в базу идет такой функцией.
function
save($familiy, $imy, $otchestvo)
{
$sql = "INSERT INTO catalog(familiy, imy, otchestvo)
VALUES('$familiy', '$imy', '$otchestvo')";
mysql_query($sql) or die(mysql_error());
}
 
 Top
Vinyl
Отправлено: 19 Декабря, 2012 - 07:54:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




yogeswar пишет:
Заливка в базу идет такой функцией.
Хоть мне и не понять зачем Вы это в функцию завернули, все же, где соединение с БД? Это
yogeswar пишет:
PHP:
скопировать код в буфер обмена
  1. $sql = "INSERT INTO catalog(familiy, imy, otchestvo)
  2. VALUES('$familiy', '$imy', '$otchestvo')";
без соединения работать не будет, значит, mysql_connect() таки есть. Вот сразу после него пишите
PHP:
скопировать код в буфер обмена
  1. mysql_query ("set character_set_client='utf8'");
  2. mysql_query ("set character_set_connection='utf8'");
  3. mysql_query ("set character_set_results='utf8'");
  4. mysql_query ("set character_set_database='utf8'");
  5. mysql_query ("set collation_connection='utf8_general_ci'");


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
yogeswar
Отправлено: 19 Декабря, 2012 - 07:56:55
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Спасибо большое Vinyl!!!!!
Буду думать и все исправлять.
 
 Top
Vinyl
Отправлено: 19 Декабря, 2012 - 07:58:04
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




На здоровье, yogeswar. Удачи Вам.


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB