Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не получается добавление записей без указания полей
 
 автор: Ret   (11.10.2006 в 01:51)   письмо автору
 
 

Подскажите, что не так? Запись добавляется только после перечисления полей таблицы:


mysql> describe vvv9;
+--------+---------------+------+-----+---------+----------------+
| Field  | Type          | Null | Key | Default | Extra          |
+--------+---------------+------+-----+---------+----------------+
| id_en  | int(3)        | NO   | PRI | NULL    | auto_increment |
| art    | char(15)      | NO   |     |         |                |
| model  | char(25)      | NO   |     |         |                |
| v      | char(5)       | YES  |     | NULL    |                |
| t      | char(6)       | YES  |     | NULL    |                |
| n      | char(5)       | YES  |     | NULL    |                |
| h      | char(5)       | YES  |     | NULL    |                |
| w      | char(5)       | YES  |     | NULL    |                |
| z      | char(5)       | YES  |     | NULL    |                |
| em     | char(2)       | YES  |     | NULL    |                |
| zk     | char(2)       | YES  |     | NULL    |                |
| tr     | char(2)       | YES  |     | NULL    |                |
| si     | char(2)       | YES  |     | NULL    |                |
| za     | char(2)       | YES  |     | NULL    |                |
| prise  | decimal(11,2) | YES  |     | NULL    |                |
| id_ob  | int(3)        | NO   |     | 19      |                |
| id_ser | int(2)        | NO   |     | 1       |                |
+--------+---------------+------+-----+---------+----------------+
17 rows in set (0.00 sec)

mysql> insert into vvv9 values(0,"efefef","eiieiei","","32","53","ee","er","ew","","","","","","8989");
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql>
mysql> insert into vvv9 (id_en,art,model,v,t,n,h,w,z,em,zk,tr,si,za,prise) values(0,"efefef","eiieiei","","32","53","ee"

    -> ,"er","ew","","","","","","8989");
Query OK, 1 row affected (0.00 sec)

   
 
 автор: cheops   (11.10.2006 в 02:17)   письмо автору
 
   для: Ret   (11.10.2006 в 01:51)
 

Если вы хотите пропустить какие-то значения, то нужно явно указать, какие значения вы приводите, т.е. запрос должен иметь следующий формат
 insert into vvv9 (art, model) values("efefef", "eiieiei");

   
 
 автор: Trianon   (11.10.2006 в 09:28)   письмо автору
 
   для: Ret   (11.10.2006 в 01:51)
 

В таблице 17 полей.
Вы перечисляете 15 значений.
Сервер отвечает: число полей не совпадает с числом значений в строке 1.
Что Вас удивило?

   
 
 автор: Ret   (11.10.2006 в 22:31)   письмо автору
 
   для: Trianon   (11.10.2006 в 09:28)
 

Никаких значений мне пропускать не нужно, т.к. насколько я понял из "Самоучитель MySQL 5"
(авторы Кузнецов М., Симдянов И.), поля которые имеют значения по умолчанию (DEFAULT)
необязательно указывать в списке VALUES, поэтому я и указал имя таблицы и список значений,
кроме DEFAULTных.

Сейчас почитал "Самоучитель...", и кажется получается, что при использовании значений по
умолчанию не обязательно указывать имена этих полей, но имена других полей надо указать.
И если я не хочу перечислять имена полей при вставке, то в списке VALUES надо перечислить
все значения.

Сейчас проверю.

   
 
 автор: cheops   (11.10.2006 в 22:42)   письмо автору
 
   для: Ret   (11.10.2006 в 22:31)
 

Нет, поля, которые имеют атрибут DEFAULT получт указываемое им значение, если вы это поле пропускаете. Если вы используете формат INSERT tbl VALUES (...), то вместо ... следует указывать значения для всех столбцов таблицы tbl.

   
 
 автор: Unkind™   (11.10.2006 в 22:46)   письмо автору
 
   для: Ret   (11.10.2006 в 22:31)
 

Вам лучше использовать "INSERT INTO `table` SET `var` = 1, `var2` = 123 ..."

   
 
 автор: Ret   (11.10.2006 в 23:23)   письмо автору
 
   для: Unkind™   (11.10.2006 в 22:46)
 

Спаситбо всем! Всё получилось.

mysql> describe jkl3;
+--------+---------------+------+-----+---------+----------------+
| Field  | Type          | Null | Key | Default | Extra          |
+--------+---------------+------+-----+---------+----------------+
| id_en  | int(11)       | NO   | PRI | NULL    | auto_increment |
| art    | char(15)      | NO   |     |         |                |
| model  | char(25)      | NO   |     |         |                |
| v      | char(5)       | YES  |     | NULL    |                |
| t      | char(6)       | YES  |     | NULL    |                |
| n      | char(5)       | YES  |     | NULL    |                |
| h      | char(5)       | YES  |     | NULL    |                |
| w      | char(5)       | YES  |     | NULL    |                |
| z      | char(5)       | YES  |     | NULL    |                |
| em     | char(2)       | YES  |     | NULL    |                |
| zk     | char(2)       | YES  |     | NULL    |                |
| tr     | char(2)       | YES  |     | NULL    |                |
| si     | char(2)       | YES  |     | NULL    |                |
| za     | char(2)       | YES  |     | NULL    |                |
| prise  | decimal(11,2) | YES  |     | NULL    |                |
| id_ob  | int(3)        | NO   |     | 19      |                |
| id_ser | int(2)        | NO   |     | 1       |                |
+--------+---------------+------+-----+---------+----------------+
17 rows in set (0.02 sec)

mysql> insert into vvv9 values(0,"rrrere","eeeerrr","","53","89","ii","kk","cc","","","","","","5454",19,1);
Query OK, 1 row affected (0.00 sec)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования