как вставить данные в 4 таблицы с одной формой в MySQL - PullRequest
0 голосов
/ 20 декабря 2018

У меня проблемы с вставкой в ​​несколько таблиц с использованием одной формы в новостном проекте, пожалуйста, мне нужна помощь

if(isset($_POST['submit']))
{
    $title=$_POST['title'];
    $ai=$_FILES['image']['name'];
    $image="image/".$ai;
    move_uploaded_file($_FILES['image']['tmp_name'],$image);
    $news=$_POST['news'];
    $descn=$_POST['descn'];
    $category=$_POST['category'];

error_reporting(E_ALL);

$title=mysqli_real_escape_string($con, $_POST['title']);
$news=mysqli_real_escape_string($con, $_POST['news']);
$descn=mysqli_real_escape_string($con, $_POST['descn']);
$category=mysqli_real_escape_string($con, $_POST['category']);

$query = "insert into news JOIN news2 JOIN news3 JOIN news4(title,image,news,descn,category) values('$title','$image','$news','$descn','$category')";

1 Ответ

0 голосов
/ 20 декабря 2018

Это невозможно.Операторы INSERT всегда используют только одну таблицу.Если вы хотите вставить в несколько таблиц и убедиться, что все вставки рассматриваются как одна атомарная операция, используйте транзакции.Например:

START TRANSACTION;
INSERT INTO x VALUES ...
INSERT INTO y VALUES ...
INSERT INTO z VALUES ...
COMMIT;

При возникновении ошибки вы делаете ROLLBACK; вместо коммита, и все операторы этой транзакции отменяются.

В другой заметке, когда у вас есть такие таблицы, какnews, news2, news3 и так далее, это пахнет плохим дизайном базы данных.Вы должны серьезно пересмотреть это, поскольку цель реляционной базы данных, используемой для транзакционной рабочей нагрузки, обычно состоит в том, чтобы избежать избыточных данных.Для достижения этой нормализации используется.Вот ссылка на учебник .(Я не читал его, но после быстрого взгляда после поиска в Google это выглядит многообещающе)

Еще одно примечание: при объединении таблиц предоставьте условие объединения.В противном случае вы получите каждую строку одной таблицы, объединенную с каждой строкой из любой другой таблицы, которая может быть ОГРОМНЫМ набором результатов.Вы обычно этого не хотите.Вы также можете прочитать учебник по SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...