mysql在多个表中插入数据:

时间:2013-12-29 11:36:22

标签: php mysql sql

我创建的数据库包含许多表彼此之间的关系,

我制作了一个表格,将书籍添加到名为book的表格中。在此表中,有一个名为author_author_id的列,其中包含表authoruser_user_id中的ID相同的故事。名为genre的另一个表与book具有多对多关系。

我直接将用户,作者和流派id添加到数据库,但是我必须使用一个语句在书表中插入所有数据的查询究竟是什么!

我是php编码的新手,请原谅我的愚蠢和浅薄的问题以及我描述问题的方式。

1 个答案:

答案 0 :(得分:1)

函数mysqli_insert_id()返回最后插入的行的ID。

<?php

$link = // Connect to the database using the mysqli driver

// Create author (if not exists already)
mysqli_query($link, 'INSERT INTO authors (name, ...) VALUES ("author name", ...)');
$author_id = mysqli_insert_id($link, $link);

// Escape ID
$author_id = mysqli_real_escape_string($link, $author_id);

// Create the book
mysqli_query($link, 'INSERT INTO books (name, author_id ...) VALUES ("book name", ' . $author_id . ' ...)');
$book_id = mysqli_insert_id($link);

// Escape ID
$book_id = mysqli_real_escape_string($link, $book_id);

// Add the genres
mysqli_query($link, 'INSERT INTO genres (book_id, genre_id) VALUES (' . $book_id . ', ...)');

此代码使用过程mysqli_*函数。这不是最干净的方法,上面的代码只能作为如何继续的指示。为了清洁代码(在PHP标准中),请查看PDO以获得更清晰的数据库访问模型。