Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2015, 19:40   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Не записываются текстовые поля в MySql

Создаю таблицу:
Код:
$sql = mysqli_query($link,"CREATE  TABLE IF NOT EXISTS `bd_avtopick`.`register`  (
  `id` SMALLINT UNSIGNED NOT NULL ,
  `login` VARCHAR(8) NULL ,
  `md5_password` CHAR(32) NULL ,
  `email` VARCHAR(128) NULL ,
  `status` TINYINT (1) NULL ,
  `1` SMALLINT UNSIGNED NULL ,
  `2` SMALLINT UNSIGNED NULL ,
  `3` SMALLINT UNSIGNED NULL,
  `N xoda` TINYINT NULL ,
  `data` TIMESTAMP  ,
  PRIMARY KEY (`id`) )
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci");
Вставляю:
Код:
$id=2;
$login_='illusion';
$md5_password='password';
$md5_password_xesh=md5($md5_password);
$email_='illusion@mail.ru';
$status=1;
$_1=4;
$_2=2;
$_3=3;
$N_xoda=3;
//от '1970-01-01 00:00:00' до '2037-12-31 23:59:59'
//Источник: http://www.site-do.ru/db/sql2.php
//© site-do.ru
$data='2015-01-20 18:35:03';
//$sql = mysqli_query($link,"  INSERT INTO `register`(`id`, `login`, `md5_password`,`email`,`status`,`1`,`2`,`3`,`N xoda`,`data`) VALUES (1,'products',30)");
$sql = mysqli_query($link,"  INSERT INTO `register`(`id`, `login`, `md5_password`,`status`,`1`,`2`,`3`,`N xoda`,`data`) 
VALUES (7,$login_,'5f4dcc3b5aa765d61d8327deb882cf99',$status,$_1,$_2,$_3,$N_xoda,$data)");
Вставка числовых переменных идет а вот если вставлена переменная строковая, например login_ выдает ошибку:
Unknown column 'illusion' in 'field list'

А вместо вставляемой даты :'2015-01-20 18:35:03';
вставляется:'0000-00-00 00:00:00'
или выдает ошибку:
Код:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '18:35:03)' at line 2
Версия программы: 5.5.25

Скорее всего что то с кодировкой вставляемых данных, но что именно.

В php в начале поставил:
Код:
mb_internal_encoding("UTF-8");

Последний раз редактировалось Illusiony; 20.01.2015 в 20:14.
Illusiony вне форума Ответить с цитированием
Старый 20.01.2015, 21:02   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Строковые значения в запросе должны быть заключены в одинарные кавычки.
Чтоб не париться при этом, где строковое значение, а где числовое – рекомендуется просто все значения заключать в такие кавычки, а дальше умный MySQL сам разберется, где какое значение:
PHP код:
" VALUES ('7', '$login_', '5f4dcc3b5aa765d61d8327deb882cf99', '$status', '$_1', '$_2', '$_3', '$N_xoda', '$data')" 
Andkorol вне форума Ответить с цитированием
Старый 20.01.2015, 21:09   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Строковые значения в запросе должны быть заключены в одинарные кавычки.
Чтоб не париться при этом, где строковое значение, а где числовое – рекомендуется просто все значения заключать в такие кавычки, а дальше умный MySQL сам разберется, где какое значение:
PHP код:
" VALUES ('7', '$login_', '5f4dcc3b5aa765d61d8327deb882cf99', '$status', '$_1', '$_2', '$_3', '$N_xoda', '$data')" 
Большое спасибо.
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не записываются данные в mysql через php impeee PHP 8 08.04.2014 09:47
Вывод значений полей таблицы в текстовые поля Умагаджи SQL, базы данных 2 27.08.2012 22:58
Отправка Текста из ListBox в текстовые поля unicode Общие вопросы Delphi 5 14.05.2009 08:46
Текстовые поля. Проблема spygms Общие вопросы Delphi 4 09.01.2009 20:44