Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/20: Рейтинг темы: голосов - 20, средняя оценка - 4.55
67 / 44 / 5
Регистрация: 22.02.2011
Сообщений: 285
1

Не получается с кодировкой в mysql бд

17.04.2011, 15:18. Показов 4079. Ответов 39
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
вот я подключась в php к своей базе данных,результат вывожу,делаю выборку из таблицы,а у меня вместо букв на веб странице какие то неопнятные симоволы типо знаков вопроса ???????

пробывал менять кодировку у браузера,подобрал кодировку, данные из бд отображаются корректно,но зато всё остальное сайта уже корявое
что делать чтобы всё отображалось корректно

база делалась в phpmyadmin
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2011, 15:18
Ответы с готовыми решениями:

С кодировкой базы данных и кодировкой сайтом и кодировкой файла разобраться не могу
С кодировкой базы данных и сайтом файлом разобраться не могу. Я на своем сайте вывожу данные из...

Проблемы с кодировкой MySQL!
У меня проблемы. Был сайт со самописным движком. Движок в кодировке просто UTF-8 (писал в NotePad)....

MySQL. Проблема с кодировкой
Создал я БД и одну таблицу в ней с помощью phpMyAdmin. Далее для всех тектовых полей и в целом для...

Проблемы с кодировкой в MySql
Приветствю. Прежде, чем создать эту тему я пытался найти ответ а этом форуме и поиском в гугл....

39
67 / 44 / 5
Регистрация: 22.02.2011
Сообщений: 285
19.04.2011, 15:41  [ТС] 21
Author24 — интернет-сервис помощи студентам
как переводить куда не понял
0
350 / 76 / 10
Регистрация: 13.10.2010
Сообщений: 830
19.04.2011, 15:46 22
на последнюю свою картинку нажми
1
67 / 44 / 5
Регистрация: 22.02.2011
Сообщений: 285
19.04.2011, 19:09  [ТС] 23
щас попробую проделать

Добавлено через 3 часа 1 минуту
УУУУУУУУУУУУУРА прыгаю до потолка после 3 х дней размышлений и ползаняю по гуглю и всяческих замен конфигурационных файлов всё таки получилось вывести всё корректно
Sonax
спасибо огромное,хоть кто то точно сказал как сделать надо!
если не сложно кажи ещё пожалуйста что именно говорит этот код,что у меня вдруг заработало
и также всем спасибо кто принимал участие !!!!!
0
350 / 76 / 10
Регистрация: 13.10.2010
Сообщений: 830
19.04.2011, 19:33 24
Вкратце: прими за аксиому, что проекты нужно писать на utf-8, а в connect прописывай этот код. Это уточнение кодировки.
1
Павел Сергеевич
13.08.2012, 23:22 25
Зачем всю эту муть раздувать ??? зачем вписывать несколько строк кода ??? когда там всё как два пальца! "profid" Просто напросто нужно когда создаёш новую php страницу указывать в ней кодировку "windows-1251"
HTML5
1
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
и спокойно заполняй страницу дальше! А потом проверяй в браузере, и ты увидишь что и твои данные со страницы и данные из базы данных отображаются как надо! Но только не пытайся изменять кодировку когда у тебя страница уже заполнена! Можешь создать новую, изменить кодировку и затем скопировать весь русский текст со старой!
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
13.08.2012, 23:26 26
Цитата Сообщение от Павел Сергеевич Посмотреть сообщение
нужно когда создаёш новую php страницу указывать в ней кодировку "windows-1251"
категорично с вами не согласен, кодировку нужно устанавливать UTF-8 without BOM
Причины:
1. В вашем варианте, то что прописано в теге мета - браузер частенько с удовольствием забивает на него вообще.
2. Вытекает из 1. - google chrome частенько страницы, которые написаны в windows-1251 выводит с "кракозябрами" вместо русского текста
3. UTF-8 поддерживает больше символов (и другие языки, например, китайский и т.п.)
4. Более распространено.
0
Павел Сергеевич
14.08.2012, 00:42 27
Цитата Сообщение от KOPOJI Посмотреть сообщение
категорично с вами не согласен, кодировку нужно устанавливать UTF-8 without BOM
Причины:
1. В вашем варианте, то что прописано в теге мета - браузер частенько с удовольствием забивает на него вообще.
2. Вытекает из 1. - google chrome частенько страницы, которые написаны в windows-1251 выводит с "кракозябрами" вместо русского текста
3. UTF-8 поддерживает больше символов (и другие языки, например, китайский и т.п.)
4. Более распространено.
В таком случае ему нужно было просто напросто поставить более новую версию Денвера http://www.denwer.ru/ а то у него стоит phpMyAdmin 2.5.6. и там нет функции выбора кодировки для создаваемой таблицы! На диске уроков Е.Попова версия не обновлялась поэтому парень от туда и установил такую старую!
0 / 0 / 4
Регистрация: 13.08.2012
Сообщений: 73
22.08.2012, 10:22 28
И еще в блокноте где ты пишешь там есть меню выборки в какой кодировки хранить файл.
+ как я поняла если мешать хтмл и пхп то за пхп в хтмл коменты могут портить кодировку ...
PHP
1
2
3
4
5
6
7
8
$host = "localhost";
$user = "Dreika";
$password = "Dreika";
$db = "redactor";
header( 'Content-Type: text/html; charset=utf8' );
mysql_connect( 'localhost', 'Dreika', 'Dreika' );
mysql_select_db( 'redactor' );
 mysql_set_charset( 'utf8' );
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2012, 10:33 29
1. в блокноте нет выбора кодировки в текстовом редакторе наподобие notepad - это другое дело
2. если разместить header первой же строчкой, до вывода любой информации в браузер - нисколько не портит кодировку.
3. mysql не рекомендовано к использованию
0
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
22.08.2012, 11:03 30
Цитата Сообщение от KOPOJI Посмотреть сообщение
mysql не рекомендовано к использованию
?? не рекомендовано кем? и почему?
и какая связка с РНР лучше?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2012, 11:19 31
Love_and_Peace, я имел в виду не сам сервер MySQL, а именно расширение mysql для работы с MySQL. Не рекомендовано никем, на офф сайте тоже самое написано. Рекомендуется использовать mysqli или PDO для работы с MySQL. Я лично использую PDO, изредка бывает что и mysqli, но очень редко .

Добавлено через 1 минуту
а почему - потому что оно во первых устаревшее, а во вторых уязвимое

Добавлено через 1 минуту
Здесь в самом начале я писал об этом - и почему ее до сих пор не убрали тоже Работа с БД MySQL
0
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
22.08.2012, 20:17 32
Цитата Сообщение от KOPOJI Посмотреть сообщение
а именно расширение mysql для работы с MySQL
мм.. у меня установлен денвер, использую обычные ф-ии РНР для работы с mysql. как мне перевести все на msqli или тот же PDO?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2012, 21:12 33
Love_and_Peace, mysqli встроено обычно, да и PDO тоже если денвер не старый..
вот к примеру PDO:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DEFINE('HOST','localhost'); //хост
DEFINE('USER','admin'); //юзер
DEFINE('PASS',1234); //пароль
DEFINE('DB_NAME','имя_базы_данных');
try {
$db = new PDO('mysql:host='.HOST.';dbname='.DB_NAME,USER,PASS); // подключение к БД
$res = $db->query("SELECT * FROM `table_name`");
while($row = $res->fetch(PDO::FETCH_ASSOC)) {
print_r($row);
}
} 
catch (PDOException $e) {
echo $e->getMessage();
}
думаю разберешься где что поменять на свое надо.. если запустится, и все нормально будет, не вылезет никаких ошибок - значит PDO стоит уже

Добавлено через 10 минут
тоже самое на mysqli..
PHP
1
2
3
4
5
6
7
8
9
10
11
DEFINE('HOST','localhost'); //хост
DEFINE('USER','admin'); //юзер
DEFINE('PASS',1234); //пароль
DEFINE('DB_NAME','имя_базы_данных');
$link = mysqli_connect(HOST,USER,PASS,DB_NAME);
$res = mysqli_query($link,"SELECT * FROM `table_name`");
while($row = mysqli_fetch_assoc($res)) {
print_r($row);
}
mysqli_free_result($res);
mysqli_close($link);
Добавлено через 29 минут
на ООП mysqli так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
DEFINE('HOST','localhost'); //хост
DEFINE('USER','admin'); //юзер
DEFINE('PASS',1234); //пароль
DEFINE('DB_NAME','имя_базы_данных');
$db = new mysqli(HOST,USER,PASS,DB_NAME);
if(!mysqli_connect_errno()) {
$res = mysqli->query("SELECT * FROM `table_name`");
while($row = $res->fetch_assoc()) {
print_r($row);
}
$res->close();
}
$db->close();
1
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
22.08.2012, 22:40 34
простая замена ф-ий на .._msqli это и есть использование msqli и это дают более надежную защиту?
Обязательно ли использование
PHP
1
2
3
4
try {
}
catch {
}
в PDO?
нужно ли использовать mysql_real_escape_string при использовании msqli или PDO?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2012, 22:47 35
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Обязательно ли использование
Советуют ловить ошибки.
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
нужно ли использовать mysql_real_escape_string при использовании msqli или PDO?
mysql_real_escape_string - это функция для работы с mysql, в mysqli и PDO свои.
в mysqli -
PHP
1
mysqli_real_escape_string($link,$var);
в PDO - либо prepare+execute, либо quote

Добавлено через 3 минуты
PHP
1
2
3
4
5
$db = new PDO ....
$user = " ' or 1=1 -- f ";
$pass = 'qwerty';
$db->prepare("SELECT * FROM `table` Where `login`=:user AND `pass`=:pass");
$db->execute(array('user'=>$user,'pass'=$pass));
Добавлено через 34 секунды
либо через bindParam() забивать переменные для экранирования
1
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
22.08.2012, 22:52 36
Цитата Сообщение от KOPOJI Посмотреть сообщение
в mysqli и PDO свои.
так в чем же +, если и там нужны те же (похожие) ф-ии,что и в обычном mysql?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2012, 22:58 37
Ну в расширении mysql не доступны в полной мере все возможности MySQL. Вообще mysqli - это улучшенный драйвер mysql, это почти одно и тоже, только поновее и помощнее. как телефоны. старый телефон с миди-мелодиями и "новый" с полифонической..
а PDO помимо всего этого поддерживает 12 (если память не изменяет) различных серверов БД (mysql и mysqli - только одну, свою).

Добавлено через 1 минуту
и помимо всего прочего - зайдите на офф сайт php.net и почитайте про любую функцию mysql_* - даже там написано что не рекомендуется полагаться на нее, т.к. она устарела и в любой момент может стать deprecated

Добавлено через 1 минуту
про mysqli
http://www.php.su/articles/?cat=phpdb&page=010
сравнение характеристик
http://habrahabr.ru/post/119294/
1
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
22.08.2012, 23:01 38
KOPOJI, такой еще вопрос -
в msqli или PDO для mysql'я есть ли полнотекстовый поиск для типа таблиц InnoDB?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.08.2012, 23:07 39
Love_and_Peace, к сожалению не знаю, у меня в основном еще используются MyISAM, а где на InnoDB еще не искал

Добавлено через 38 секунд
но, думаю, должен быть..

Добавлено через 2 минуты
здесь кстати довольно неплохо рассказывают основы PDO (ну и офф сайт)http://dandreev.com/blog/php-p... kovodstvo/
1
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
22.08.2012, 23:09 40
спасибо за ответы.
с MyISAM я ушел, т.к. InnoDB удобно для связанных таблиц.
я слышал в 6-ой версии MySQL вопрос о полнотекстовом поиске для InnoDB решат, но проблемы возникают уже сейчас и хотелось бы найти решение до релиза 6-ой.
поищу, может в msqli есть костыль на этот случай.
если найдешь первым обязательно дай ссылку
0
22.08.2012, 23:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2012, 23:09
Помогаю со студенческими работами здесь

Ошибка с кодировкой Mysql
Проблема в том что если не использовать буквенные значения в запросах то всё норм А если на...

Крякозябры с кодировкой в БД MySql
Вообщем есть форма на сайте, которая отправляет данные в бд. На mysql стоит кодировка...

Mysql ошибка что то с кодировкой мб?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server...

Помотите !!! Проблемы с кодировкой в mysql !!!
Посылаю данные с формы в базу, если написано кириллицей то в базе одни иероглифы, помогите ! Вот...

Mysql выводит не с указанной кодировкой
Всем привет! Столкнулся с проблемой, php скрипт в utf-8 отправляет данные в mysql, способ сравнения...

Запись данных в MySQL с русской кодировкой.
Что надо настроить или указать в коде, чтобы символы русской кодировки сохранялись корректно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru