Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 07.08.2010, 11:31   #1
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
Вопрос Запись данных в таблицу PostgreSQL

Имеется бд постгрес в ней есть таблица users. Пытаюсь в нее по аналогии с мускулом записать данные, но выдает ошибку. Подскажите, что я делаю не так?
PHP код:
$Query3 "INSERT into users values (\"1\", \"Admin\", \"$Admin_Password\", \"Администратор\", \"Админ\", \"Админ\", \"Admin\")";//Запрос записи данных в таблицу users

   
if(pg_query($Link$Query3))
     {
      print(
"Пользователь успешно внесён в базу!");
     } else { 
       print(
"Пользователь не был внесён в базу: " pg_last_error());
     } 
Ошибку выдаёт следующую:
Warning: pg_query() [function.pg-query]: Query failed: ERROR: column "Admin" does not exist LINE 1: INSERT into users values (0, "Admin", "admin", "Администрато... ^ in /home/routerman117/server/www/nbn_prebid2/createdb.php on line 51
Пользователь не был внесён в базу: ERROR: column "Admin" does not exist LINE 1: INSERT into users values (0, "Admin", "admin", "Администрато... ^
nec117 вне форума Ответить с цитированием
Старый 07.08.2010, 11:46   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Скорее всего вы просчитались с количеством столбцов в таблице.
Ошибка гласит:
"Столбец "Admin" не существует" - скорее всего речь о последнем элементе в запросе - т.е. некуда писать уже данные.
Проверьте,если первый столбец у вас автоинкрементный(id какое-нить) - то туда ничего писать не нужно - добавит id автоматом ...
Andkorol вне форума Ответить с цитированием
Старый 07.08.2010, 11:51   #3
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Проверил, все поля на месте, убрал в запросе заполнение поля id переименовал первый Admin в тест, он стал писать ту же ошибку про тест, значит ошибка начинается с первого же поля
nec117 вне форума Ответить с цитированием
Старый 07.08.2010, 12:00   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Странно...
проверьте тогда типы данных для полей - может не везде принимается текстовое значение...
Andkorol вне форума Ответить с цитированием
Старый 07.08.2010, 12:07   #5
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Везде принимает текст. Такое ощущение что постгрес воспринимает это как название столбцов, в которые нужно внести переменные. Может это где то в запросе указывается? чтобы не воспринимал имена
nec117 вне форума Ответить с цитированием
Старый 07.08.2010, 12:12   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Попробуйте указать явно,например:
Код:
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99);
Andkorol вне форума Ответить с цитированием
Старый 07.08.2010, 12:49   #7
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Как оказалось вся проблема была в \" после замены на одинарные кавычки всё заработало Но возник следующий вопрос, если указывать id 0,1,2 или 3 он добавляет, но после повторного добавления например с id 0 он пишет то что нельзя добавить уже есть такая запись. В мускуле он автоматически увеличивал на 1, тут я сделал у id тип SERIAL, как нужно указать в запросе id чтобы он сам его увеличивал?
nec117 вне форума Ответить с цитированием
Старый 07.08.2010, 13:15   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата отсюда:
Цитата:
Чтобы вставить следующее значение последовательности в колонку с типом serial, укажите, что в колонку с типом serial вставляется значение по умолчанию для этой колонки. Это можно сделать либо не указывая колонку с списке колонок в операторе INSERT, либо используя ключевое слово DEFAULT.
Andkorol вне форума Ответить с цитированием
Старый 07.08.2010, 13:18   #9
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Спасибо, помогло
nec117 вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в таблицу Omg Zomg БД в Delphi 0 30.05.2010 13:08
запись из DBEdit в таблицу MySQL KaimNotark БД в Delphi 7 22.01.2010 20:36
Запись данных в таблицу MySQL, расположенную на удалённом сервере) tigr1991 БД в Delphi 0 07.01.2010 01:34
Запись из формы в таблицу??? DEZuv Microsoft Office Access 2 06.04.2009 10:15