mySQL Вставить в таблицу с идентификатором внешнего ключа от другого - PullRequest
0 голосов
/ 28 марта 2012

У меня есть две таблицы: p_model: (id auto inc), (name), (p_category_id) AND p_category: (id), (name)

В основном каждая модель связанапо категориям.Мне нужно сгенерировать оператор INSERT, который вставляет новую модель и добавляет идентификатор связанной с ней категории p_category.

Моя функция PHP пропускает оба значения:

function Perform_Insert_Model($model_name, $category_name)
{
$statement = "INSERT INTO p_model(`name`,`p_category_id`) VALUES ('$model_name','??????')";

//Where the "??????" is I need a statement that searches for $category_name (string) in the p_category table and returns the id.

....
}

Пример вызовафункция будет $ database-> Perform_Insert_Model ("Банан", "Фрукт").Банан тогда будет новой моделью продукта и будет иметь внешнюю ключевую ассоциацию идентификатора фрукта.

1 Ответ

1 голос
/ 28 марта 2012

Вы можете попробовать этот тип запроса (это всего лишь 1 запрос):

INSERT INTO p_model(`name`,`p_category_id`) SELECT '$model_name', `p_category_id`
   FROM p_category WHERE `category_name`='$category_name';

Примечание: предполагается, что для данного имени категории есть только 1 категория, или он вставит несколько записей в p_model

...