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

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

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

Студворк — интернет-сервис помощи студентам
это мой первый опыт работы с 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
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru