Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/74: Рейтинг темы: голосов - 74, средняя оценка - 4.95
6 / 6 / 1
Регистрация: 25.07.2009
Сообщений: 49
MySQL

Добавление в БД, ошибки с кодировкой

05.11.2009, 16:06. Показов 13949. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
это мой первый опыт работы с php и БД...

в общем дела обстоят так:
кодировка базы - utf8_unicode_ci
кодировка страницы - windows-1251

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

PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
  </head>
  <body>
 
<?php
  $DBSERVER = "127.0.0.1";
  $DBUSER = "login";
  $DBPASS = "pass";
  $DB = "basa";
  $TABLE = "table";
 
  if (isset($_POST['add']))
  {
    $link = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Не могу подключиться");
    mysql_select_db($DB, $link) or die('Не могу выбрать БД');
    mysql_query("SET NAMES 'utf8'");
 
    $name=$_POST["name"];
    $price=$_POST["price"];
    $query = "INSERT INTO $TABLE VALUES(NULL,$name,$price)";
 
    $result = mysql_query($query);
    if($result) echo "Даные внесены в базу данных";
    else echo "Ошибка, данные не были внесены в БД";
    mysql_close($link);
  }
  else
  {
    echo '<form method="POST">
      name <input type="text" name="name"><br />
      price <input type="text" name="price"><br />
      <input type="submit" name="add" value="add to table">
    </form>';
  }
?>
 
  </body>
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2009, 16:06
Ответы с готовыми решениями:

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

Ошибки с кодировкой
Здравствуйте!!! Я в замешательстве! У меня не получается работать с UNICODE. Использую TCHAR, -юникод-функции (GetDlgItemTextW), но в итоге...

Ошибки с кодировкой
&lt;?php if ( !empty($_POST) ) { $user=$_POST; setcookie('HELLO',$user); $pas = $_POST; $file=&quot;reg/$user.txt&quot;; ...

26
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
05.11.2009, 16:51
Попробуйте использовать в бд кодировку cp1251_general_ci
0
6 / 6 / 1
Регистрация: 25.07.2009
Сообщений: 49
05.11.2009, 18:55  [ТС]
поменял у таблицы, и базовую кодировку тоже, на cp1251_general_ci, но не помогло

а может влиять то, что кодировка самого файла, содержащего пхп-код, - ANSI ?
0
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
05.11.2009, 19:01
Покажите структуру таблицы..
0
Почетный модератор
 Аватар для Humanoid
11542 / 4337 / 451
Регистрация: 12.06.2008
Сообщений: 12,446
05.11.2009, 20:52
Цитата Сообщение от NET_Goblin Посмотреть сообщение
а может влиять то, что кодировка самого файла, содержащего пхп-код, - ANSI ?
ANSI - это и есть cp1251

Добавлено через 52 секунды
А зачем выполняешь
PHP Скопировано
1
mysql_query("SET NAMES 'utf8'");
?
У тебя же всё в cp1251... значит надо
PHP Скопировано
1
mysql_query("SET NAMES cp1251");
0
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
06.11.2009, 01:02
Цитата Сообщение от Humanoid Посмотреть сообщение
А зачем выполняешь
PHP Скопировано
1
mysql_query("SET NAMES 'utf8'");
Humanoid, я писал это выше, он сказал что менял
поменял у таблицы, и базовую кодировку тоже, на cp1251_general_ci, но не помогло
мне кажется у него с таблицей что то не то.. может строку пытается в int записать или еще что..
пусть покажет структуру таблицы..
0
6 / 6 / 1
Регистрация: 25.07.2009
Сообщений: 49
06.11.2009, 01:53  [ТС]
Code Скопировано
1
2
3
4
Поле    Тип            Сравнение            Дополнительно
id  int(6)                              auto increment
name    varchar(20)    cp1251_general_ci
price   decimal(10,0)
повторюсь, если вводить строку $query все значения вручную, то команда выполняется. а из формы не берет.
0
 Аватар для Елена
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
06.11.2009, 08:31
я тоже не могу с этим разобраться. Пыталась задавать в базе кодировки utf-8, cp1251, в php писала запрос mysql_query("SET NAMES cp1251"); Но русские буквы у меня выводятся квадратиками. Залезла на сайт "денвер" и подобные, везде пишут по проблемам кодировок. У меня установлен sql5, php5, пока смотрела webserver увидела, как различные кодировки выдаются: латин рисует вопросы, т.е. в conf надо заменить значение переменных charset, а про мои "любимые" квадратики никто ничего не пишет!! Есть здесь гении по кодироквам и состыковке SQL-PHP, отзовитесь
0
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
06.11.2009, 12:04
Лично у меня все работает.

1,Удалите таблицу полностью.
2,Создайте снова. При создании таблицы укажите по умолчанию кодировку cp1251_general_ci
3,Радуйтесь...

Добавлено через 1 минуту
А если радоваться будет нечем, значит ваш редактор работает с непонятной кодировкой..
0
 Аватар для Елена
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
06.11.2009, 12:36
создала новую базу данных, сменила пользователя (убрала "root"), сделала новую таблицу, в рекомендациях прочитала, что надо поменять настройки в my.ini или my.cnf .Я не могу найти эти файлы, все рекомендации пишут для SQL4, а у меня SQL5. В файле urs/local/sql5 нет файла my.cnf, где его искать??
0
6 / 6 / 1
Регистрация: 25.07.2009
Сообщений: 49
06.11.2009, 15:16  [ТС]
Цитата Сообщение от Милый Враг Посмотреть сообщение
Лично у меня все работает.

1,Удалите таблицу полностью.
2,Создайте снова. При создании таблицы укажите по умолчанию кодировку cp1251_general_ci
3,Радуйтесь...

Добавлено через 1 минуту
А если радоваться будет нечем, значит ваш редактор работает с непонятной кодировкой..
че мне сделать? видимо, мой редактор шаманит. пересоздал таблицу, но это не помогло.

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

может посоветуете другую кодировку? какая самая популярная?

Добавлено через 11 минут
хаха... пойду учить мат часть =)
ошибка в коде пхп:
Code Скопировано
1
$query = "INSERT INTO $TABLE VALUES(NULL,'$name',$price)";
надо было переменную $name как строку записывать...
0
 Аватар для Елена
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
06.11.2009, 17:21
Ну вот, наконец-то у меня получилось..Мне уже советовали использовать функцию iconv. Я неправильно ее применяла. Сейчас в базе установила кодировку utf-8, в php-коде вставила после запроса из базы $string=iconv ('cp1251','utf-8',$string);, где 'utf-8'-кодировка базы, cp1251-кодировка в php, $string-считываемая строка из базы. Запрос "SET NAMES СР1251" мне не помог))
0
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
06.11.2009, 17:59
Искать не надо.. при создании БД в PHPMyAdmin можно указать кодировку (сравнение). там в скписке и выберите..
0
 Аватар для Елена
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
06.11.2009, 19:44
Цитата Сообщение от Милый Враг Посмотреть сообщение
Искать не надо.. при создании БД в PHPMyAdmin можно указать кодировку (сравнение). там в скписке и выберите..
Хотелось бы все же найти)) Я столько за неделю экспериментов устраивала, пыталась в php-коде для кучи переменных задавать кодировку и только функцией iconv победила. Нашла скрипт "charset_x_win -- Преобразовать строку на русском языке из неизвестной кодировки в кодировку windows-1251 ". Много хороших отзывов.. надо попробовать в действии..
0
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
07.11.2009, 00:27
че мне сделать? видимо, мой редактор шаманит. пересоздал таблицу, но это не помогло.

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

может посоветуете другую кодировку? какая самая популярная?

Добавлено через 11 минут
хаха... пойду учить мат часть =)
ошибка в коде пхп:
в данный момент тут речь идет о том что из таблицы данные в непонятной кодировке ...
0
6 / 6 / 1
Регистрация: 25.07.2009
Сообщений: 49
07.11.2009, 04:07  [ТС]
Цитата Сообщение от Милый Враг Посмотреть сообщение
в данный момент тут речь идет о том что из таблицы данные в непонятной кодировке ...
у меня не было проблем с выводом инфы из базы, проблемы были как раз с вводом =)

а по поводу вывода с преобразованием кодировки я использовал функцию mysql_query("SET NAMES 'utf8'");
вместо utf8 можно вписать свою, например, cp1251
0
Skelos
29.03.2010, 12:56
Сделаю некропост, вдруг кто будет мучатся как я и наткнется на этот пост)

В общем решается проблема банально просто.

Вот сздесь
PHP Скопировано
1
$query = "INSERT INTO $TABLE VALUES(NULL,$name,$price)";
ставим ковычки не забываем, '$name','$price'

И будет все хорошо.
6 / 6 / 1
Регистрация: 25.07.2009
Сообщений: 49
29.03.2010, 20:41  [ТС]
Цитата Сообщение от Skelos Посмотреть сообщение
Сделаю некропост, вдруг кто будет мучатся как я и наткнется на этот пост)

В общем решается проблема банально просто.

Вот сздесь
PHP Скопировано
1
$query = "INSERT INTO $TABLE VALUES(NULL,$name,$price)";
ставим ковычки не забываем, '$name','$price'

И будет все хорошо.
причем тут кавычки? проблема была в кодировке.
0
8 / 8 / 0
Регистрация: 21.03.2010
Сообщений: 20
23.04.2010, 12:32
Хотелось бы выслушать мнения гуру, у меня так же проблема с кодировкой в онлайн игре, ставил я её в разных кодировках, половину руссифицировал, но никак у меня не выходит руссификация чата и сообщений пользователям, перепробовал уже многое, инсталлировал оооооочень много раз в разных кодировках, пытался делать подмену кодировки, но увы как были вопросы в чате и сообщениях, так всё и осталось. Подскажите пожалуйста что ещё можно предпринять?
0
3 / 3 / 1
Регистрация: 29.11.2010
Сообщений: 115
08.02.2011, 01:48
Всё перепробовал что в голову лезет, весь интернет перешарил, ничего не помогает, Та же самая проблема, вместо русских букв знаки вопросов, с английскими всё норм.
Может посоветуете что работающее
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Соединение с БД</title>
</head>
<?php 
$db = mysql_connect("localhost","alex","1111");
mysql_select_db("firstbd",$db);
mysql_query("SET NAMES cp1251");
$result = mysql_query("SELECT * FROM firma WHERE id='2'",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["lastname"];
?>
<body>
</body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2011, 01:48
Помогаю со студенческими работами здесь

Ошибки с кодировкой и стилями CSS
Уважаемые web-разработчики, можете мне, новичку подсказать, что это за проблема? Сайт вроде загрузился, но ни кодировки, ни стилей нет....

Ошибки с кодировкой при получении json c сайта
Всем привет. При получении json ответа отображается неправильная кодировка кириллицы. ,&quot;type&quot;: Вот как получаю эти...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер