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 :: PHP 5.3.3 + MSSQL 2008 + Кириллица

 PHP.SU

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


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

> Описание: Добавление кирилических данных
Venmar
Отправлено: 29 Марта, 2011 - 10:59:24
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2011  


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




Здравствуйте.
Возникла такая проблема, при добавление русских букв, в БД сохраняются вопросительные знаки, как это можно исправить?

Использую драйвер от Microsoft.

PHP:
скопировать код в буфер обмена
  1. $query = "INSERT INTO tablichka (login,password,salt,username) VALUES (?,?,?,?)";
  2. $sql = sqlsrv_query($conn,$query,array($login,$hashed_password,$salt,$username)) or die(sqlsrv_errors());
 
 Top
movEAX
Отправлено: 29 Марта, 2011 - 11:58:01
Post Id



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


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


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




Не знаю как в SQL Serrver, а в MySQL помогает SET NAMES кодировка;


-----
армия.. самое убогое место
 
 Top
Venmar
Отправлено: 29 Марта, 2011 - 13:29:29
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2011  


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




Не помогло Недовольство, огорчение
 
 Top
SAD Модератор
Отправлено: 29 Марта, 2011 - 13:35:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




iconv
 
 Top
Venmar
Отправлено: 29 Марта, 2011 - 13:53:32
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2011  


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




iconv тоже пробовал, не вариант.
Возможно допустил ошибку в параметрах, т.к. если на прямую добавить, то норм, но хотелось бы сделать по нормальному.

PHP:
скопировать код в буфер обмена
  1. $query = "INSERT INTO tablichka (login,password,salt,username) VALUES (?,?,?,N'".$username."')";
  2. $sql = sqlsrv_query($conn,$query,array($login,$hashed_password,$salt)) or die(sqlsrv_errors());
 
 Top
I5Rek
Отправлено: 31 Марта, 2011 - 23:39:30
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2011  


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




SAD пишет:
iconv

Че вас всех тянет такую глупость править как iconv.
Повторюсь "Страницу кода сохраните в кодировке ANSI as UTF-8 без BOM".

(Отредактировано автором: 31 Марта, 2011 - 23:41:31)

 
 Top
OrmaJever
Отправлено: 01 Апреля, 2011 - 00:02:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




I5Rek пишет:
Повторюсь "Страницу кода сохраните в кодировке ANSI as UTF-8 без BOM".

кодировка текста может быть не причём.
Venmar
1) переведите файл в кодировку utf 8 как написал I5Rek
2) вначале файла добавьте строку
PHP:
скопировать код в буфер обмена
  1. header('Content-type: text/html; charset=utf-8');

3) перед запросом напишите
PHP:
скопировать код в буфер обмена
  1. *_query('SET NAMES utf8'); // место * начало функции для запроса в базу

4) Кодировка бд должна быть utf8 и кодировка таблицыдолжна быть utf8

(Отредактировано автором: 01 Апреля, 2011 - 00:48:54)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
I5Rek
Отправлено: 01 Апреля, 2011 - 08:58:37
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2011  


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




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

mysql_query("SET NAMES 'cp1251'"); или mysql_query("SET NAMES 'UTF-8'");

Это как в командной строке тоже можно дать установку на прием и запись нужной кодировки SET NAMES 'cp866';

Настоятельно рекомендую после проверки кода на его рабочее состояние, убирайте лишний код типа на проверку ошибок. or die (mysql_error(). Не загрязняйте лишний раз код.

(Отредактировано автором: 01 Апреля, 2011 - 11:03:12)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB