Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [mysqli][php] Как побороть разница в кодировке текста в запросах из браузера и консоли. / 3 сообщений из 3, страница 1 из 1
16.05.2015, 07:56
    #38960446
APM
APM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[mysqli][php] Как побороть разница в кодировке текста в запросах из браузера и консоли.
Есть общая база для сайта и неких консольных утилит php

В ней вот такая вот таблицы:

Код: sql
1.
2.
3.
CREATE TABLE ... (
...
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 



Указан charset cp1251.

Сайт не мой (dle движок), я посмотерл как он подключается к базе:
Код: php
1.
2.
3.
4.
... 
new mysqli(DBHOST,DBUSER,DBPASS,DBNAME);
->query("set 'names cp1251'")
...



Моя задача из консольного скрипта, вставить данные в эту же базу.
Я так же подключаюсь, вставляю их, на сайте отображаются в неверной кодировке (какой то испорченной).

Включил лог запросов mysql, и вставил данные через движок, вот так выглядят его запросы на вставку:
Код: sql
1.
2.
SET NAMES 'cp1251'
INSERT INTO dle_category (parentid, name, alt_name, icon, skin, descr, keywords, news_sort, news_msort, news_number, short_tpl, full_tpl, metatitle) values ('5', '\xEF\xF0\xE8\xE2\xE5\xF2', 'test', '', '', '', '', '', '', '0', '', '', '')



Вот так в логе выглядят мои запросы:
Код: sql
1.
insert into dle_category (parentid, id, name) values(0,2,'�����������-�����')




Перелистал весь код, не вижу никаких особых параметров подключения или ещё чего то в таком роде.
Не понимаю откуда берется представление строк в виде \xEF , в первом случае.
...
Рейтинг: 0 / 0
16.05.2015, 08:47
    #38960453
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[mysqli][php] Как побороть разница в кодировке текста в запросах из браузера и консоли.
Исходные данные для вставки в какой кодировке представлены?
...
Рейтинг: 0 / 0
16.05.2015, 17:46
    #38960612
APM
APM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[mysqli][php] Как побороть разница в кодировке текста в запросах из браузера и консоли.
ну. в случае консольного скрипта, это просто текст в переменной.

я его через prepare statement туда
автор
$insert->bind_param('iisss',$....);
$insert->execute();


в случае браузера, ну это текстовые поля <input type=text> ...
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [mysqli][php] Как побороть разница в кодировке текста в запросах из браузера и консоли. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]