亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從一組變量發布到多個 Php 數據庫表

從一組變量發布到多個 Php 數據庫表

PHP
一只名叫tom的貓 2023-06-24 17:14:18
我有一個來自 HTML 表單的變量,該變量當前已發布到我的數據庫表中的一個表中。我想在同一函數中同時將這些相同的變量發布到其他表。這可能嗎?這是我當前的 PHP 函數,它已成功發布到一張表<?php    $var1 = $_POST['var1'];    $var2 = $_POST['var2'];    $var3 = $_POST['var3'];    // Database connection    $conn = new mysqli('localhost','user','password','database');    if($conn->connect_error){        echo "$conn->connect_error";        die("Connection Failed : ". $conn->connect_error);    } else {        $stmt = $conn->prepare("insert into table1(var1, var2, var3) values(?, ?, ?)");        $stmt->bind_param("sss", $var1, $var2, $var3);           $execval = $stmt->execute();        echo $execval;        $stmt->close();        $conn->close();    }?>我希望將以下變量發布到同一數據庫中的多個表,因此正在考慮以下內容,但它不起作用 -<?php    $var1 = $_POST['var1'];    $var2 = $_POST['var2'];    $var3 = $_POST['var3'];    // Database connection    $conn = new mysqli('localhost','user','password','database');    if($conn->connect_error){        echo "$conn->connect_error";        die("Connection Failed : ". $conn->connect_error);    } else {        $stmt = $conn->prepare("insert into table1(var1, var2, var3) values(?, ?, ?)");        $stmt->bind_param("sss", $var1, $var2, $var3);        $stmt = $conn->prepare("insert into table2(var1) values(?)");        $stmt->bind_param("s", $var1);        $stmt = $conn->prepare("insert into table3(var2, var3) values(?, ?)");        $stmt->bind_param("ss", $var2, $var3);         $execval = $stmt->execute();        echo $execval;        $stmt->close();        $conn->close();    }?>
查看完整描述

2 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

對的,這是可能的。您可以執行現在正在執行的操作,但需要execute()在準備每個查詢后調用方法。除此之外,將其包裝在事務中也是一個好主意。事務可幫助您確保所有操作成功或全部失敗。如果其中一個失敗,其他的就不會被執行。


您的固定代碼應如下所示:


<?php

$var1 = $_POST['var1'];

$var2 = $_POST['var2'];

$var3 = $_POST['var3'];



// Database connection

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // switches error reporting on

$conn = new mysqli('localhost','user','password','database');

$conn->set_charset('utf8mb4'); // always set the charset


// Start transaction

$conn->begin_transaction();


$stmt = $conn->prepare("insert into table1(var1, var2, var3) values(?, ?, ?)");

$stmt->bind_param("sss", $var1, $var2, $var3);

$stmt->execute();


$stmt = $conn->prepare("insert into table2(var1) values(?)");

$stmt->bind_param("s", $var1);

$stmt->execute();


$stmt = $conn->prepare("insert into table3(var2, var3) values(?, ?)");

$stmt->bind_param("ss", $var2, $var3); 

$stmt->execute();


// End transaction

$conn->commit();


查看完整回答
反對 回復 2023-06-24
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

嘗試調用 $stmt->execute();?每次調用 $stmt->bind_param() 后;

?PDO 支持多個查詢(PDO_MYSQL、PDO_MYSQLND)


查看完整回答
反對 回復 2023-06-24
  • 2 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號