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.SU

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


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

> Без описания
Budulianin
Отправлено: 19 Декабря, 2010 - 14:24:16
Post Id



Частый гость


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


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




Всем привет. Мне нужно загрузить склеенную строку в БД, но она не записывается

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $Dannie = $html->find('table [class="service_01"]');
  4.  
  5. $Danniestr = implode('  ', $Dannie);
  6.  
  7.  
  8.  
  9. mysql_query("UPDATE `tarifi` SET `dannietar` = $Danniestr  WHERE `id` = 1 ");
  10.  
  11. $q1 = mysql_query("SELECT `dannietar` FROM `tarifi` WHERE `id` = 1 ");
  12.  
  13. $ss = mysql_fetch_array($q1, MYSQL_ASSOC);
  14.  
  15. echo $ss['dannietar'];
  16.  
  17.  
  18.  


Поле в БД типо LONGTEXT после работы скрипта оно пустое, почему содержимое переменной не сохраняется в БД??
 
 Top
Uchkuma
Отправлено: 19 Декабря, 2010 - 14:28:58
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




Budulianin пишет:
почему содержимое переменной не сохраняется в БД?
Что содержится в этой переменной?
 
 Top
Champion Супермодератор
Отправлено: 19 Декабря, 2010 - 14:29:05
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Потому что строки пишутся в кавычках.
 
 Top
Budulianin
Отправлено: 19 Декабря, 2010 - 14:36:04
Post Id



Частый гость


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


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




Uchkuma пишет:
Budulianin пишет:
почему содержимое переменной не сохраняется в БД?
Что содержится в этой переменной?


Это переменная содержит напарсенный код

Сначала я массив получаю с этим кодом в каждом элементе массива table с классом service_01

потом склеиваю массив в строку ( в итоге я думаю получается строка с текстом, после того как я склеил массив )
 
 Top
OrmaJever Модератор
Отправлено: 19 Декабря, 2010 - 14:38:01
Post Id



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


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


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




напишите перед запросом var_dump($Danniestr)
а после запроса echo mysql_error()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Uchkuma
Отправлено: 19 Декабря, 2010 - 14:39:21
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




PHP:
скопировать код в буфер обмена
  1. $Danniestr = mysql_real_escape_string(implode('  ', $Dannie));
  2. mysql_query("UPDATE `tarifi` SET `dannietar` = '$Danniestr'  WHERE `id` = 1 ");
 
 Top
Budulianin
Отправлено: 19 Декабря, 2010 - 14:43:31
Post Id



Частый гость


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


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




OrmaJever пишет:
напишите перед запросом var_dump($Danniestr)
а после запроса echo mysql_error()


вот что выводит после всего выведенного с помощью VAR_DUMP

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
(Добавление)
Uchkuma пишет:
PHP:
скопировать код в буфер обмена
  1. $Danniestr = mysql_real_escape_string(implode('  ', $Dannie));
  2. mysql_query("UPDATE `tarifi` SET `dannietar` = '$Danniestr'  WHERE `id` = 1 ");


То что ты написал помогло

А в чем было дело?

mysql_real_escape_string - преобразовывает в другой вид данных ?

mysql_real_escape_string -- Экранирует специальные символы в строке, используемой в SQL-запросе, принмимая во внимание кодировку соединения.

А у меня была в чем проблема? в кодировке?

(Отредактировано автором: 19 Декабря, 2010 - 14:49:58)

 
 Top
Ammy
Отправлено: 19 Декабря, 2010 - 15:01:03
Post Id



Частый гость


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


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




Champion пишет:
Потому что строки пишутся в кавычках.
 
 Top
Budulianin
Отправлено: 19 Декабря, 2010 - 15:09:08
Post Id



Частый гость


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


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




Ammy пишет:
Champion пишет:
Потому что строки пишутся в кавычках.


ААААААА........


Всмысле сам текст который я передаю в БД ?

Я думал при склеивании массива функцией implode содержимое автоматически становится строкой или я не прав?


Спасибо всем большое за ответы они очень помогли и главное быстро =) и выручили меня

(Отредактировано автором: 19 Декабря, 2010 - 15:31:37)

 
 Top
Мелкий Супермодератор
Отправлено: 19 Декабря, 2010 - 15:44:17
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Budulianin пишет:
Я думал при склеивании массива функцией implode содержимое автоматически становится строкой или я не прав?

Становится. Но для PHP. А SQL не может распарсить, где кончается строка и начинаются команды, поэтому там строки надо в дополнительные кавычки сажать.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB