社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如何在mysql中用一个表单插入4个表中的数据

Tochukwu Lucky • 4 年前 • 147 次点击  

在新闻项目中使用一个表单插入多个表时遇到问题,请提供帮助

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')";
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49341
 
147 次点击  
文章 [ 1 ]  |  最新文章 4 年前
fancyPants
Reply   •   1 楼
fancyPants    5 年前

那是不可能的。INSERT语句总是只使用一个表。如果要插入到多个表中,并确保所有插入都被视为一个原子操作,请使用事务。这样地:

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

当错误发生时 ROLLBACK; 而不是提交,并且该事务的所有语句都将被撤消。

另一方面,当您有news、news2、news3等表时,这闻起来像是糟糕的数据库设计。您应该认真考虑这一点,因为用于事务性工作负载的关系数据库的目标通常是避免冗余数据。为了实现这个标准化。这里有一个链接 tutorial . (我还没读过,但在谷歌搜索了一下之后,它看起来很有前途)

另一个注意事项:在联接表时,请提供联接条件。否则,一个表中的每一行与其他表中的每一行合并,这可能是一个巨大的结果集。你通常不想那样。考虑阅读一篇关于SQL的教程。