从1个表单插入2个表。 Mysql事务? [英] Insert into 2 tables from 1 form. Mysql Transaction?

查看:102
本文介绍了从1个表单插入2个表。 Mysql事务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

用户将创建文章并使用它提交图片。

The user will create an article and submit an image with it.

+文章将转到文章表。

+The article will go to the articles table.

+图像将转到图像表

建议我使用TRANSACTIONS,但我收到错误。

    $sql ='BEGIN INSERT INTO articles(article_title, article_text, article_date)
            VALUES (?, ?, NOW())
            INSERT INTO images(article_id, image_caption)
            VALUES(LAST_INSERT_ID(),?);
            COMMIT';

 $stmt = $conn->stmt_init();
    if ($stmt->prepare($sql)) {
    $stmt->bind_param('sss', $_POST['article_name'], $_POST['description'], $_POST['image_caption']);

        $OK = $stmt->execute();

        printf("%d Row inserted.\n", $stmt->affected_rows);

        $stmt->free_result();

    } else{
        echo "Failure- article not uploaded";
    }


推荐答案

$mysqli->query("START TRANSACTION");
$stmt = $mysqli->prepare('INSERT INTO articles(article_title, article_text, article_date) VALUES (?, ?, NOW())');
$stmt->bind_param('ss', $_POST['article_name'], $_POST['description']);
$stmt->execute();
$stmt = $mysqli->prepare('INSERT INTO images (article_id, image_caption) VALUES(LAST_INSERT_ID(),?)');
$stmt->bind_param('s', $_POST['image_caption']);
$stmt->execute();
$stmt->close();
$mysqli->query("COMMIT");

这篇关于从1个表单插入2个表。 Mysql事务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆