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 :: Unknown column 'xxx' in 'field list'

 PHP.SU

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


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

> Без описания
Axiles
Отправлено: 02 Августа, 2010 - 12:19:05
Post Id


Гость


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


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




Драсте.
Из формы методом POST передаю в скрипт данные.
В скрипте их принимаю
PHP:
скопировать код в буфер обмена
  1.  
  2. $namePOST = $_POST ['name'];
  3.  

записываю в базу sql
PHP:
скопировать код в буфер обмена
  1.  
  2.  mysql_query(" UPDATE `bd` SET `name` = $namePOST[0] WHERE `npp` = 0")or die (mysql_error());
  3.  

если данные это цифры то всё нормально записывается, если же текст то выдаёт ошыбку Unknown column 'xxx' in 'field list'

нипайму пачему Огорчение
хотя работало, что изменилось тоже не пойму Огорчение
 
 Top
EuGen Администратор
Отправлено: 02 Августа, 2010 - 12:36:57
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Посмотрите генерируемый текст запроса и сравните его со структурой таблицы. Возможно, последняя изменилась (если Вы утверждаете, что запрос не менялся)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Axiles
Отправлено: 02 Августа, 2010 - 12:50:20
Post Id


Гость


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


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




я так понял что он неможет найти такую колонку, но цифры то он пишет в неё, а буквы не хочет (
а в структуре таблицы что я увижу?
имя правильное, тип текст, что ещё?
 
 Top
RomAndry Администратор
Отправлено: 02 Августа, 2010 - 12:52:30
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. mysql_query('UPDATE `bd` SET `name` = "'.$namePOST[0].'" WHERE `npp` = 0')or die (mysql_error());
 
My status
 Top
SAD Модератор
Отправлено: 02 Августа, 2010 - 12:52:55
Post Id



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


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


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




блин, в кавычки возьми текст заносимый
 
 Top
JustUserR
Отправлено: 03 Августа, 2010 - 03:27:20
Post Id



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


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


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




Axiles В начале для осуществления диагностики действительно следует посмотреть сгенерированный SQL-запрос с учетом интерполированных переменных - в исходном HTML-коде генерируемой HTML-страницы При этом интерполируемые данные не только должны быть заключены к кавычки внутри SQL-запроса - но и предварительно проэкранированы с уровнем на единицу большим чем реальная передаваемая строкова SQL-запроса соответственно - а иначе PHP-скрипт будет подвержен возможный SQL-инъекции


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Axiles
Отправлено: 03 Августа, 2010 - 05:11:21
Post Id


Гость


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


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




RomAndry пишет:
mysql_query('UPDATE `bd` SET `name` = "'.$namePOST[0].'" WHERE `npp` = 0')or die (mysql_error());

в таком виде ошибку не выдаёт.
я так понял что таким образом оформленный запрос не производит запись в бд, тоесть необходим для теста о чё и говорит JustUserR , я правильно понял?
А вот это не понял "Посмотрите генерируемый текст запроса ", как это сделать?
 
 Top
SAD Модератор
Отправлено: 03 Августа, 2010 - 09:20:06
Post Id



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


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


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




echo 'UPDATE `bd` SET `name` = "'.$namePOST[0].'" WHERE `npp` = 0';
 
 Top
Axiles
Отправлено: 03 Августа, 2010 - 10:26:28
Post Id


Гость


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2.  echo "<br>";
  3.  echo $namePOST[$nppPOSTvalue];
  4.  echo "<br>";
  5.  echo 'UPDATE `bd` SET `name` = "'.$namePOST[$nppPOSTvalue].'" WHERE `npp` = 0';
  6.          echo "<br>";
  7.  mysql_query(" UPDATE `bd` SET `name`= $namePOST[$nppPOSTvalue] WHERE `npp` = 1")or die (mysql_error());
  8.  


результат

Цитата:

456
UPDATE `bd` SET `name` = "456" WHERE `npp` = 0

hhh
UPDATE `bd` SET `name` = "hhh" WHERE `npp` = 0
Unknown column 'hhh' in 'field list'
 
 Top
SAD Модератор
Отправлено: 03 Августа, 2010 - 10:34:33
Post Id



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


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


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




mysql_query("UPDATE `bd` SET `name`= '$namePOST[$nppPOSTvalue]' WHERE `npp` = 1")
 
 Top
Axiles
Отправлено: 03 Августа, 2010 - 13:42:40
Post Id


Гость


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


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




SAD пишет:
mysql_query("UPDATE `bd` SET `name`= '$namePOST[$nppPOSTvalue]' WHERE `npp` = 1")


воооооо блин, обязательно надо носом натыкать чтобы увидеть то что у тебя перед этим самым носом
огромное спасибо!
 
 Top
JustUserR
Отправлено: 04 Августа, 2010 - 16:54:38
Post Id



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


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


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




Axiles пишет:
Я так понял что таким образом оформленный запрос не производит запись в бд, тоесть необходим для теста о чё и говорит JustUserR , я правильно понял?
Как видите осуществление диагностики в вашем случае сразу бы указало причину ошибки - только конечно при осуществлении вывода необходимо чтобы диагностируемое выражение в точности соответствовало и находилось в аналогичкой области видимости - как и то которое используется в реальном действии в PHP-скрипте
Axiles пишет:
А вот это не понял "Посмотрите генерируемый текст запроса ", как это сделать?
Имелось в виду что нужно смотреть не сам текст на странице в браузере а ее исходный HTML-код - для того чтобы текст был виден именно в том виде в каком он используется внутри операций в PHP-скрипте Можно использовать и более удобное средство отладки - например интерактивный debugger с названием PHPEd


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 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