2014-01-19 3 views
0

Я работаю над блогами с сообщениями. Я хотел бы вставить в 3 таблицыПопытка вставить в две таблицы с использованием php и mysqli

сообщений, категории и Post_categories (показать правильную категорию для почты)

Я пробовал все, используя MySQLi, такие как:

$titel = $_POST['titel']; 
$post = $_POST['post-text']; 

$sql= 
"INSERT INTO posts (titel, post) 
VALUES ('$titel', '$post') 
INSERT INTO post_categories (idposts) 
VALUES ('". $mysqli->insert_id() ."') 
"; 

if (!mysqli_query($link,$sql)) 
    { 
    die('Error: ' . mysqli_error($link)); 
    } 
echo "1 record added"; 
mysqli_close($link); 

Но этот Бесполезный Не работай. Я застрял в течение двух часов, и я почти отказываюсь от этого. Я действительно не знаю, как это сделать в Мыски. Я знал, как это работает в Мысле.

Надеюсь, кто-то может помочь мне с этим.

Моя структура таблицы выглядит следующим образом:

сообщений

idposts
Титель
разместить
добавил

Категории

idcategor х годов
категория

post_categories

ID
idposts
idcategories

+0

Поиск в google для «mysql insert into multiple tables». Вот несколько примеров, подобных этому: http://stackoverflow.com/questions/10043887/sql-insert-into-multiple-tables В принципе, если вы не делаете «хранимую процедуру», это не будет возможно. Вам нужно вставить первый, второй и т. Д. – mogosselin

ответ

0

Поскольку вы вставляете в несколько таблиц, попробуйте также использовать транзакции. Также вы не можете получить mysql_insert_id() до того, как запрос будет выполнен.

mysqli_autocommit($link, FALSE); 
$sql = "INSERT INTO posts (titel, post) VALUES ('".$titel."', '".$post."')"; 
if (mysqli_query($link, $sql) === TRUE) { 
    $postId = mysqli_insert_id($link); 
    $sql1 = "INSERT INTO post_categories (idposts) VALUES ('".$postId."')"; 
    mysqli_query($link, $sql1); 
} 
if (!mysqli_commit($link)) { //commit transaction 
    print("Table saving failed"); 
    exit(); 
} 
+0

Это работало как шарм! Спасибо, сэр. Я довольно новичок в Mysqli, потому что мой последний «большой» проект был со старым shitty mysql. –

0

Вы не можете выполнить два запроса на то же самое время, используя mysqli_query, вместо этого вы должны использовать mysqli_multi_query, если вы действительно хотите сделать поэтому

+0

Это лучший способ вставки в две таблицы? Я не уверен. –

Смежные вопросы