Rambler's Top100
, : |

! : http://dreamweaver.net.ru/new-forum/

| FAQ | | |

Вставка записи в MySQL
1, 2  .
 
  ,         .     ,        .     Форум Macromedia Dreamweaver -> Динамические страницы
 
abaZ
Новичок

Новичок


: 31

: 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
Знакомый

Знакомый


: 32

: 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
Новичок

Новичок


: 31

: 01.07.2006
: 9
: Nal'chik

: 11, 2006 5:03 pm     :

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

Модератор


: 42

: 21.08.2004
: 1490
: Санкт-Петербург

: 11, 2006 9:14 pm     :

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

Модератор


: 36

: 12.05.2005
: 846

: 12, 2006 10:33 am     :

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

Новичок


: 31

: 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
Модератор

Модератор


: 36

: 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;");
Денис
Модератор

Модератор


: 42

: 21.08.2004
: 1490
: Санкт-Петербург

: 21, 2006 6:45 pm     :

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

Новичок


: 31

: 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]
Денис
Модератор

Модератор


: 42

: 21.08.2004
: 1490
: Санкт-Петербург

: 25, 2006 12:37 pm     :

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

Новичок


: 31

: 01.07.2006
: 9
: Nal'chik

: 26, 2006 9:17 pm     :

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

Модератор


: 36

: 12.05.2005
: 846

: 28, 2006 9:59 am     :

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

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

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

Модератор


: 42

: 21.08.2004
: 1490
: Санкт-Петербург

: 28, 2006 8:29 pm     :

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


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

Модератор


: 36

: 12.05.2005
: 846

: 28, 2006 9:53 pm     :

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

Модератор


: 42

: 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


/ : 134359 / 0

Rambler's Top100 @Mail.ru