0
두 테이블을 동시에 업데이트 할 수있는 방법이 있습니까? 나는 이것이 내가 삽입 된 제품 나는 테이블을 food_menu
과의 food_r
값을에 삽입해야 볼 수 있도록하려면 지금 음식동시에 두 테이블에서 업데이트
$rest_id = null;
if (!empty($_GET['rest_id']))
{
$rest_id = $_REQUEST['rest_id'];
}
if (null==$rest_id)
{
echo "null==$rest_id";
}
if(isSet($_POST['submit']))
{
// keep track post values
$food_name = $_POST['food_name'];
$food_description = $_POST['food_description'];
$food_menu = $rest_id;
$usertype = $_SESSION['usertype'];
// update data
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = $pdo->prepare("INSERT INTO food (food_name, food_description, food_menu, usertype)
VALUES (:food_name, :food_description, :food_menu, :usertype)");
$sql->execute(array(
':food_name' => $food_name,
':food_description' => $food_description,
':food_menu' => $food_id,
':usertype' => $_SESSION['usertype']
));
Database::disconnect();
echo "Product added!";
}
에 삽입되는 코드입니다 테이블 food
및 테이블 food_r
이 usertype
의 값. 어떻게해야합니까?
업데이트 : 그것은 그렇게 작동합니다. 거래를 가리켜 주신 것에 대해 @JonathonWisnoski에게 감사드립니다..
$pdo->beginTransaction();
$sql = $pdo->prepare("INSERT INTO food (food_name, food_description, food_menu, usertype)
VALUES (:food_name, :food_description, :food_menu, :usertype)");
$sql->execute(array(
':food_name' => $food_name,
':food_description' => $food_description,
':food_menu' => $rest_id,
':usertype' => $_SESSION['usertype']
));
$lastInsertID = $pdo->lastInsertId();
$sql = $pdo->prepare("INSERT INTO food_r (food_id, usertype)
VALUES (:rest_id, :usertype)");
$sql->execute(array(
':rest_id' => $lastInsertID,
':usertype' => $rest_id
));
$pdo->commit();
이것은 거래와 관련이 있습니다. 트랜잭션의 일반적인 개념은 수많은 inssions/etc를 준비하는 것입니다. 그리고 모든 것을 한 번에 저지하십시오. – Jonathon
참조 : http://stackoverflow.com/questions/5178697/mysql-insert-into-multiple-tables-database-normalization – Jonathon
두 테이블에 삽입하거나 두 테이블을 업데이트 하시겠습니까? –