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
Форумы портала PHP.SU :: Версия для печати :: POST переменная в запросе к БД
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » POST переменная в запросе к БД

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

1. simple-lad - 20 Марта, 2008 - 19:19:24 - перейти к сообщению
В форме несколько полей разных типов имена которых записываются как массив pr_name, например text:
CODE (text):
скопировать код в буфер обмена
  1. <input type='text' size='20' name='pr_name[$i]'>

В скрипте обработки формы пытаюсь обновить запись в БД:
PHP:
скопировать код в буфер обмена
  1. mysql_query("UPDATE db_project SET pr_name='$_POST[pr_name][$id]'");

В ответ на что в БД записывается что-то типа "Array[3]".

Хотя если эту же переменную выводить через

то на экране получаем ее значение.

Что не так с запросом и как можно решить данную проблему?
2. EuGen - 20 Марта, 2008 - 19:26:55 - перейти к сообщению
Скорее всего, анализатор для строковых выражений PHP не сумел правильно понять текст запроса. Вы можете попробовать сделать так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. mysql_query("UPDATE db_project SET pr_name='".$_POST['pr_name'][$id]."'");
  4. ?>
  5.  
3. simple-lad - 20 Марта, 2008 - 19:33:36 - перейти к сообщению
EuGen пишет:
Скорее всего, анализатор для строковых выражений PHP не сумел правильно понять текст запроса. Вы можете попробовать сделать так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. mysql_query("UPDATE db_project SET pr_name='".$_POST['pr_name'][$id]."'");
  4. ?>
  5.  


К сожалению, не помогло Недовольство, огорчение Спасибо за помощь
4. EuGen - 20 Марта, 2008 - 19:35:55 - перейти к сообщению
Ну тогда Вам нужно делать отладку. Сделайте что-то вроде этого:

И конечно же http://phpfaq[dot]ru/debug
5. simple-lad - 20 Марта, 2008 - 19:45:34 - перейти к сообщению
В ответ получаю:
CODE (text):
скопировать код в буфер обмена
  1. Array ( [pr_name] => Array ( [7] => текст в первом поле [3] => текст во втором поле ))

С первого взгляда все так. Хм.. Да и то что echo выводит правильное значение переменной смущает. Если бы и так была ошибка, то было бы ясно что она не так передается. А так - не понимаю Недовольство, огорчение
6. valenok - 20 Марта, 2008 - 20:48:39 - перейти к сообщению
http://phpfaq[dot]ru/debug
7. KaJIbk - 22 Марта, 2008 - 11:35:11 - перейти к сообщению
У меня аналогичная проблема. Хотя я делаю не update, a select и у меня не mysql а mssql.
Однако все запросы, в которые динамически подставляются значения переменных, полученные из массива POST не возвращают результатов. В частности я передаю параметры user defined функции.
Указанный выше совет не помог и мне.
8. valenok - 22 Марта, 2008 - 12:35:12 - перейти к сообщению
У вас аналогичное решение
этапы которого подробно описаны вот тут:

http://phpfaq.ru/debug
9. EuGen - 22 Марта, 2008 - 16:03:29 - перейти к сообщению
З раза в одной теме одна и та же ссылка.. куда мы катимся ... (*
(прошу прощения за офтоп, не сдержался)

 

Powered by ExBB FM 1.0 RC1