Rambler's Top100
Приветствуем, Гость: Регистрация | Вход
 
Главная | FAQ | Поиск | Пользователи | Группы
 

Вставка записи в MySQL
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Форум Macromedia Dreamweaver -> Динамические страницы
 
Автор Сообщение
abaZ
Новичок

Новичок


Возраст: 25

Зарегистрирован: 01.07.2006
Сообщения: 9
Откуда: Nal'chik

СообщениеДобавлено: Ср Ноя 08, 2006 9:38 pm    Заголовок сообщения: Вставка записи в MySQL Ответить с цитатой

Имеется такой код

[code:1:72f8f8b229]<?php
require "dbcon.php";
global $id_author;

if(isset($_POST['familia'],$_POST['imya']))
{
$query="insert into chitateli values('','".$_POST['familia']."','".$_POST['imya']."','','','')";
if(mysql_query($query))
{
echo "Success";
}
else
{
echo mysql_error();
}

}
?>[/code:1:72f8f8b229]

Он по идее должен добавить 2 записи в таблицу, но говорит что значение '' недопустимо для автоинкриментного поля. Разве первичный ключ в таблице при вставке новых значений не должен сразу увеличиться?? Confused
Вернуться к началу
KOT!K
Знакомый

Знакомый


Возраст: 26

Зарегистрирован: 07.06.2006
Сообщения: 88

СообщениеДобавлено: Чт Ноя 09, 2006 3:10 am    Заголовок сообщения: Re: Вставка записи в MySQL Ответить с цитатой

abaZ, не знаю структуры вашей таблицы chitateli, но у меня такое ощущение, что вы автоинкриментному полю присваиваете пустое значение, если это так, то попробуйте немного изменить код, типа:
[code:1:34915c5453]$1=''; $2=''; $3='';
$query = sprintf ("INSERT INTO chitateli (familia, imya, pole1, pole2, pole3) VALUES (%s, %s, %s, %s, %s)", $_POST['familia'], $_POST['imya'], $1, $2, $3);
[/code:1:34915c5453]
Вернуться к началу
abaZ
Новичок

Новичок


Возраст: 25

Зарегистрирован: 01.07.2006
Сообщения: 9
Откуда: Nal'chik

СообщениеДобавлено: Сб Ноя 11, 2006 5:03 pm    Заголовок сообщения: Ответить с цитатой

Благодарю за помощь, но пока все без изменений ... буду думать дальше )
Вернуться к началу
Денис
Модератор

Модератор


Возраст: 36

Зарегистрирован: 21.08.2004
Сообщения: 1490
Откуда: Санкт-Петербург

СообщениеДобавлено: Сб Ноя 11, 2006 9:14 pm    Заголовок сообщения: Ответить с цитатой

abaZ, приведите структуру таблицы
Вернуться к началу
OldFornit
Модератор

Модератор


Возраст: 30

Зарегистрирован: 12.05.2005
Сообщения: 846

СообщениеДобавлено: Вс Ноя 12, 2006 10:33 am    Заголовок сообщения: Ответить с цитатой

гм. А разве строковые вставки не надо экранировать апострофами?
Вернуться к началу
abaZ
Новичок

Новичок


Возраст: 25

Зарегистрирован: 01.07.2006
Сообщения: 9
Откуда: Nal'chik

СообщениеДобавлено: Сб Ноя 18, 2006 2:32 pm    Заголовок сообщения: Ответить с цитатой

Прошу прощения что заставил ждать, вот структура таблицы читателей, для ее создания была использована программа "SQL yog":

[code:1:93d60d24c9]Field Type Key Extra
-------------------------------------------------------------
id_bilet | tinyint(5) | PK | auto_increment
| unsigned
-------------------------------------------------------------
familia | varchar(15)
-------------------------------------------------------------
imya | varchar(15)
-------------------------------------------------------------
otchestvo | varchar(15)
-------------------------------------------------------------
adres | varchar(50)
-------------------------------------------------------------
telefon | varchar(30)[/code:1:93d60d24c9]

Прошу помочь со вставкой значений в БД из HTML - формы
Вернуться к началу
OldFornit
Модератор

Модератор


Возраст: 30

Зарегистрирован: 12.05.2005
Сообщения: 846

СообщениеДобавлено: Пн Ноя 20, 2006 3:25 pm    Заголовок сообщения: Ответить с цитатой

еще раз повторяюсь - строковые переменные необходимо экранировать апострофами.
что-то этом духе
$db->beginTransaction();
$q = "INSERT INTO \"journal\".\"records\"date\",\"time\",\"from\",\"who\",\"for\",\"tel\",\"message\") VALUES ('$date','$time','$from','$who','$for','$tel','$message');";
$db->exec("set datestyle=DMY;");
Вернуться к началу
Денис
Модератор

Модератор


Возраст: 36

Зарегистрирован: 21.08.2004
Сообщения: 1490
Откуда: Санкт-Петербург

СообщениеДобавлено: Вт Ноя 21, 2006 6:45 pm    Заголовок сообщения: Ответить с цитатой

OldFornit, да ведь у abaZ`a, вроде бы, все заэкранировано...
Вернуться к началу
abaZ
Новичок

Новичок


Возраст: 25

Зарегистрирован: 01.07.2006
Сообщения: 9
Откуда: Nal'chik

СообщениеДобавлено: Сб Ноя 25, 2006 11:48 am    Заголовок сообщения: Ответить с цитатой

Вот-вот:

[code:1:ac6ec6c524]$query="insert into chitateli values('','".$_POST['familia']."','".$_POST['imya']."','','','')";[/code:1:ac6ec6c524]

Confused

Или может кто-нибудь скинет ссылку, где есть скрипты для размещения данных в БД? Буду очень признателен .[/code]
Вернуться к началу
Денис
Модератор

Модератор


Возраст: 36

Зарегистрирован: 21.08.2004
Сообщения: 1490
Откуда: Санкт-Петербург

СообщениеДобавлено: Сб Ноя 25, 2006 12:37 pm    Заголовок сообщения: Ответить с цитатой

abaZ нет никаких спецскриптов, размещающих записи в БД. Для этого существуют запросы. Попробуйте задать свой вопрос на http://www.mysql.ru. Только уговор: если там помогут - напишите здесь решение проблемы. Хотя я на 100% уверен, что глюк у Вас с самой таблицей. Кстати, попробуйте увеличить значение для поля id_bilet до 11...
Вернуться к началу
abaZ
Новичок

Новичок


Возраст: 25

Зарегистрирован: 01.07.2006
Сообщения: 9
Откуда: Nal'chik

СообщениеДобавлено: Вс Ноя 26, 2006 9:17 pm    Заголовок сообщения: Ответить с цитатой

Оk, буду докапываться до истины Smile
Вернуться к началу
OldFornit
Модератор

Модератор


Возраст: 30

Зарегистрирован: 12.05.2005
Сообщения: 846

СообщениеДобавлено: Вт Ноя 28, 2006 9:59 am    Заголовок сообщения: Ответить с цитатой

вот вот. Повнимательнее посмотрите на запрос.
Какого, извините за выражение, фига, Вы пробуете полю id_bilet присвоить значение ""?

Если поле автоинкрементное - то ничего ему и не приписывайте.

ИМХО - налицо лень написать запрос посложнее, с ЯВНЫМ указанием - каким полям что присваиваем.
Вернуться к началу
Денис
Модератор

Модератор


Возраст: 36

Зарегистрирован: 21.08.2004
Сообщения: 1490
Откуда: Санкт-Петербург

СообщениеДобавлено: Вт Ноя 28, 2006 8:29 pm    Заголовок сообщения: Ответить с цитатой

OldFornit писал(а):
Какого, извините за выражение, фига, Вы пробуете полю id_bilet присвоить значение ""?


По-моему ты малость перегнул... Автоинкрементному полю в этом случае не присаивается никакого значения, при этом MySQL сам увеличивает значение поля на единицу. Такая запись служит для указания очередности полей и значений при неявном их указании. Конечно, при явном указании полей и значений этот вариант можно пропустить.
Вернуться к началу
OldFornit
Модератор

Модератор


Возраст: 30

Зарегистрирован: 12.05.2005
Сообщения: 846

СообщениеДобавлено: Вт Ноя 28, 2006 9:53 pm    Заголовок сообщения: Ответить с цитатой

Денис, насколько я помню документацию и вообще основы работы с сикулом:
'' - это не присвоение никакого значения.
Это присвоения либо NULL, либо пустой строки.
Вернуться к началу
Денис
Модератор

Модератор


Возраст: 36

Зарегистрирован: 21.08.2004
Сообщения: 1490
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Ноя 29, 2006 5:16 pm    Заголовок сообщения: Ответить с цитатой

OldFornit на самом деле я сам так делаю, но у меня все работает...
Вернуться к началу
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум Macromedia Dreamweaver -> Динамические страницы Часовой пояс: GMT + 2
На страницу 1, 2  След.
Страница 1 из 2

 



Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Заблокировано регистраций / сообщений: 55983 / 0

Rambler's Top100 Рейтинг@Mail.ru