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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2012, 09:04   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
Сообщение Проблема с запросом (Update)

Здравствуйте товарищи, не могли бы вы меня проконсультировать в следующей проблеме:
В одном из модулей я использую запрос на обновление данных в таблице, запрос выполняется, на наличии ошибок тестировал ничего не выдает, но информация не обновляется в БД, может ли это быть связано с тем что у меня в той таблице которую я заполняю в одном из полей стоит значение "NOT NULL", при выполнении этого запроса в самом обработчике где я создавал БД(pgAdmin) все обновляется, в чем может быть проблема, объясните пожалуйста?
manula вне форума Ответить с цитированием
Старый 10.12.2012, 09:11   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

телепатов нема - покажите запрос
ADSoft вне форума Ответить с цитированием
Старый 10.12.2012, 15:11   #3
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

PHP код:
pg_query($con"SET NAMES 'windows-1251'"); 
$query "UPDATE tb_table SET activity = '".$_POST['TbAct']."',  
               naim_prog = '"
.$_POST['Tbnaim_prog']."',                               
               cstm = '"
.$_POST['Tbcstm']."',                                
               fio = '"
.$_POST['Tbfio']."',              
               tel = '"
.$_POST['Tbtel']."',                                  
               offb = '"
.$_POST['Tboffb']."',
               ofvs = '"
.$_POST['Tbofvs']."',                              
               n_doc = '"
.$_POST['Tbn_doc']."',
               date_con = '"
.$_POST['Tbdate_doc']."',
               year_v = '"
.$_POST['Tbyear']."' WHERE cstm = 'Заказчик'"
                              
          if (!
pg_query($con,$query))
            {
               echo 
"Ошибка  редактирования записи!";
               exit;               
            }
          echo 
"Запись успешно обновлена!";                        
      } 
$con - переменная соединения с базой
manula вне форума Ответить с цитированием
Старый 10.12.2012, 15:19   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

а есть такие записи, что WHERE cstm = 'Заказчик' ?
ну и при записи в БД - нельзя доверять значениям пользователя - в вашем случае - cstm = '".$_POST['Tbcstm']."' ..... прямой путь к SQL инъекциям
ADSoft вне форума Ответить с цитированием
Старый 10.12.2012, 15:26   #5
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
а есть такие записи, что WHERE cstm = 'Заказчик' ?
ну и при записи в БД - нельзя доверять значениям пользователя - в вашем случае - cstm = '".$_POST['Tbcstm']."' ..... прямой путь к SQL инъекциям
Да значение есть такое в этом поле, а вот насчет второго вопроса немного не понимаю формулировки ответа)
manula вне форума Ответить с цитированием
Старый 10.12.2012, 15:27   #6
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

как вы бы посоветовали обработать данную инструкцию?
manula вне форума Ответить с цитированием
Старый 10.12.2012, 15:40   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

1. конструкция выдает что запрос успешно обновлен?
2. почитай в инете - экранирование символов в бд.. защита от SQL инъекций...
ADSoft вне форума Ответить с цитированием
Старый 10.12.2012, 15:43   #8
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
1. конструкция выдает что запрос успешно обновлен?
2. почитай в инете - экранирование символов в бд.. защита от SQL инъекций...
Да именно, выполняется без ошибок, а на счет экранирования спасибо, сейчас почитаю.
manula вне форума Ответить с цитированием
Старый 10.12.2012, 15:48   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

1. значит запрос отрабатывает.. возможно что не так как хотите - но отрабатывает.... есть подозрение - что из-за несовпадения кодировки что написано (заказчик) и кодировки что в бд хранится... и вообще такие вещи так не делаются... для того и бд с реляционными связями.... лучше еще таблицу где id и названия - заказчик и кто там еще .. .а в БД - тока индекс, указывающий на данную сущность
.... подумайте над этим
ADSoft вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с запросом update pj-infest SQL, базы данных 0 10.04.2012 15:24
Изменение данных в БД запросом UPDATE Elegance3 Помощь студентам 5 03.12.2011 17:37
Добавить строку в longtext одним Update запросом Alar SQL, базы данных 1 02.02.2011 18:11
проблема с binding source и update Vitamin125 Общие вопросы .NET 0 20.05.2010 15:38
Проблема с Update через AdoQuery kmvteam БД в Delphi 4 12.05.2010 11:26