Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: iconv содержит данные но при записи в БД пусто
 
 автор: TetRiska   (13.06.2010 в 15:42)   письмо автору
 
 

Всем привет. Столкнулся с такой проблемой. Постом отправляю данные и в обработчике я перевожу utf-8 в windows-1251. После чего пишу в БД. База создана в кодировке cp1251, сайт тоже в кодировке windows-1251. Приведу код обработчика:
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$text = htmlspecialchars($_POST['text']);

include("config.php");
$param1 = iconv("utf-8", "windows-1251", $name);
$param2 = iconv("utf-8", "windows-1251", $email);
$param3 = iconv("utf-8", "windows-1251", $text);

mysql_query("INSERT INTO reviews SET name=".$param1.", email=2, text=3, date=NOW(), view=0");

Код конфига:
define('SLMySqlHostName', 'localhost');
define('SLMySqlUser', 'ххх');
define('SLMySqlPassword', 'ххх');
define('SLMySqlDBName', 'хххх');
mysql_connect(SLMySqlHostName, SLMySqlUser, SLMySqlPassword) or die ("Соединиться с сервером не вышло: ".mysql_error());
mysql_query("SET NAMES cp1251");
mysql_select_db(SLMySqlDBName) or die ('Не получается соединиться с базой данных: ' . mysql_error());

Если попробовать вывести
echo iconv("utf-8", "windows-1251", $name);

на страницу - вывод осуществляется и на русс, и на енгл раскладке.
В БД не хочет писать :(
Где же тогда собака зарыта? Прошу помощи.

п.с. данные через аякс шлю

  Ответить  
 
 автор: bab-nike   (13.06.2010 в 16:13)   письмо автору
 
   для: TetRiska   (13.06.2010 в 15:42)
 

а почему name=".$param1." а email и text - 2 и 3 соответственно? может надо $param2 и $param3 ?

  Ответить  
 
 автор: TetRiska   (13.06.2010 в 16:56)   письмо автору
 
   для: bab-nike   (13.06.2010 в 16:13)
 

разницы нет допишу ли я далее или так

  Ответить  
 
 автор: Trianon   (13.06.2010 в 16:29)   письмо автору
 
   для: TetRiska   (13.06.2010 в 15:42)
 

Не пробовали выводить текст запроса перед тем, как пытаться его исполнить?
Ну или на худой конец, после того, как.

  Ответить  
 
 автор: TetRiska   (13.06.2010 в 16:58)   письмо автору
 
   для: Trianon   (13.06.2010 в 16:29)
 

пробовал выводить
в поле name ввел слово тест и вывел, чтобы посмотреть что же в запрос оно запихнет
echo ("INSERT INTO reviews SET name=".$param1.", email=2, text=3, date=NOW(), view=0");

далее вывело
INSERT INTO reviews SET name=тест, email=2, text=3, date=NOW(), view=0

  Ответить  
 
 автор: TetRiska   (13.06.2010 в 17:16)   письмо автору
 
   для: Trianon   (13.06.2010 в 16:29)
 

п.с

ввел в первое поле test
ввел во второе поле mail@mail.ru
ввел в третье поле privet

после ИНСЕРТА прописал
echo mysql_error();

вывело такую ошибку
Unknown column 'test' in 'field list'

  Ответить  
 
 автор: neadekvat   (13.06.2010 в 17:22)   письмо автору
 
   для: TetRiska   (13.06.2010 в 17:16)
 

А кто будет экранировать данные? А кавычки ставить в запросах?

  Ответить  
 
 автор: TetRiska   (13.06.2010 в 17:27)   письмо автору
 
   для: neadekvat   (13.06.2010 в 17:22)
 

благодарю, блин затупил на такой мелочи
mysql_query("INSERT INTO reviews SET name='".$param1."', email=2, text=3, date=NOW(), view=0");

  Ответить  
 
 автор: Trianon   (13.06.2010 в 17:27)   письмо автору
 
   для: TetRiska   (13.06.2010 в 17:16)
 

а всё же?
echo текст_запроса?

  Ответить  
 
 автор: TetRiska   (14.06.2010 в 18:22)   письмо автору
 
   для: Trianon   (13.06.2010 в 17:27)
 

mysql_error()

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования