LINUX.ORG.RU

perl и musql


0

0

Создаю две таблицы:

CREATE TABLE subject (
  subject_id			INT UNSIGNED NOT NULL AUTO_INCREMENT,
  subject_name			VARCHAR(40)  DEFAULT '' NOT NULL,
  PRIMARY KEY (subject_id,subject_name)
);



CREATE TABLE resubject (
  subject_id			INT UNSIGNED NOT NULL,
  resubject_name		VARCHAR(40)  DEFAULT '' NOT NULL,
  osnovanie				VARCHAR(200)  DEFAULT '' NOT NULL,
  prichina				VARCHAR(200)  DEFAULT '' NOT NULL
);


Пусть есть форма где вводятся значения, потом эти значения заносим
в таблицы

$sth = $this->{dbh} -> prepare("INSERT INTO subject ( subject_name) 
VALUES ( '$mchs_data_in->{'name'}')");
$sth ->execute();

Так вот собственно вопрос - как мне узнать subject_id после этой операции, 
для второй таблици, может быть много одинаковых subject_name. В голову 
приходит только:

$sth = $this->{dbh} -> prepare("SELECT subject_name, subject_id FROM 
subject WHERE ( subject_name = 'data_in->{'name'}') ORDER BY subject_id LIMIT 1");
$sth ->execute();

Но это кажется как-то не правильно. Для примера привел только две таблици, на самом деле
их 10.
anonymous

для задач типа INSERT можно заменить
$sth = $this->{dbh} -> prepare("INSERT INTO subject ( subject_name)
VALUES ( '$mchs_data_in->{'name'}')");
$sth ->execute();
на
$this->{dbh} -> do("INSERT INTO subject ( subject_name)
VALUES ( '$mchs_data_in->{'name'}')");

это просто правильно :)

godexsoft
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.