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

Форум MySQL

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

 

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

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

тема: Добавление строк в таблицу
 
 автор: Владимир55   (02.02.2009 в 17:52)   письмо автору
 
 

Таблица создана запросом
              id INT(11) NOT NULL AUTO_INCREMENT,
              bot TEXT,
              PRIMARY KEY(id)

Если я правильно понимаю, то эта таблица состоит из двух столбцов: столбец id и столбец bot . При этом в столбей id информацию заносить не надо, ибо там будет автоматически записываться номер страки.

Так или не так?

Теперь я хочу внести в таблицу пробную запись. Я делаю это так:
$query = "INSERT INTO bot VALUES ('Проба-ProBA')";
        mysql_query($query); 
И получаю сообщение
1136: Column count doesn't match value count at row 1

Что здесь неверно?

Может, надо писать
$query = "INSERT INTO bot VALUES ('', 'Проба-ProBA')";

  Ответить  
 
 автор: Trianon   (02.02.2009 в 17:57)   письмо автору
 
   для: Владимир55   (02.02.2009 в 17:52)
 

>Таблица создана запросом
>
              id INT(11) NOT NULL AUTO_INCREMENT,
>              bot TEXT,
>              PRIMARY KEY(id)

>Если я правильно понимаю, то эта таблица состоит из двух столбцов: столбец id и столбец bot . При этом в столбей id информацию заносить не надо, ибо там будет автоматически записываться номер страки.
>

>Так или не так?
не так.

автоматикой можно пользоваться, можно не пользоваться.
Если есть желание указать не все значения, нужно явно перечислить имена заполняемых колонок в списке
(перед VALUES) согласно синтаксиса оператора.

  Ответить  
 
 автор: Владимир55   (02.02.2009 в 18:10)   письмо автору
 
   для: Trianon   (02.02.2009 в 17:57)
 

Я не пойму, как поступать с колонкой id.
По идее, вписывать мне туда нечего. Но если пропустить эту колонку, то число записей делается меньше числа колонок - и это не годится. Может, на место соответствующей этой колонке информации писать две одинарные кавычки?

  Ответить  
 
 автор: Trianon   (02.02.2009 в 18:16)   письмо автору
 
   для: Владимир55   (02.02.2009 в 18:10)
 

INSERT INTO bot (bot) VALUES ('Проба-ProBA')
Синтаксис запроса надо читать.
не стоит давать одинаковые названия таблице и полю. Запутаетесь.

  Ответить  
 
 автор: Владимир55   (02.02.2009 в 18:22)   письмо автору
 
   для: Trianon   (02.02.2009 в 18:16)
 

"не стоит давать одинаковые названия таблице и полю. Запутаетесь"
Так получилось. Это я пока что для пробы.

"INSERT INTO bot (bot) VALUES ('Проба-ProBA')"
Означает ли это, что все таблицы, содержащие поле AUTO_INCREMENT, придется заполнять только таким образом, указывая перед VALUES все остальные поля?

  Ответить  
 
 автор: Trianon   (02.02.2009 в 18:28)   письмо автору
 
   для: Владимир55   (02.02.2009 в 18:22)
 

можно применить значение NULL, но на мой взгляд, это худший вариант.
Хотя бы потому, что скрипт начинает опираться на определенный порядок полей в таблице.
Я список полей указываю во всех случаях. Даже если он полон и по порядку структуры.

  Ответить  
 
 автор: Владимир55   (02.02.2009 в 18:41)   письмо автору
 
   для: Trianon   (02.02.2009 в 18:28)
 

Вот оно как! Не просто...
Тогда и я их буду перечислять. Ибо лучше сразу заложить твердый порядок, чем потом выискивать причины сбоев в работающем скрипте.

Однако замечу, что и так тоже сработало:
$query = "INSERT INTO bot VALUES ('', 'Проба-ProBA')";

  Ответить  
 
 автор: Trianon   (02.02.2009 в 18:42)   письмо автору
 
   для: Владимир55   (02.02.2009 в 18:41)
 

такая форма может и не сработать, если сервер настроен более жестко, и не воспринимает строки там, где нужны числа.

  Ответить  
Rambler's Top100
вверх

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