我有一個PHP腳本,用於將數據發送到我的數據庫。如果SQL語句執行成功我想送一個UPDATE語句看起來像:如果第一條語句被成功執行,請運行第二條語句
UPDATE accounts SET status='1' WHERE user_id='" . $_SESSION['user_id'] ."'
是否有可能運行一個第二份聲明,如果成功地執行的第一條語句?如果是,那我該怎麼做?
這裏是我使用的數據發送到數據庫的腳本:如果兩個SQL語句執行成功,我想給用戶發送到頁面../success.php?id='.$id
編輯1
<?php
session_start();
if (isset($_GET['id']))
$correct = true;
$firstname = $_POST['firstname'] ;
$lastname = $_POST['lastname'] ;
$_SESSION['user_id'];
$status = $_POST['status'] ;
if($correct){
$db = new PDO('mysql:host=localhost;dbname=db', 'root', '');
$query = "INSERT INTO users(firstname, lastname, user_id, status) VALUES (?, ?, ?, ?)";
$stmt = $db->prepare($query);
$stmt->execute(array($firstname, $lastname, $_SESSION['user_id'], $status));
$id = $db->lastInsertId();
header('Location: ../success.php?id='.$id);
}else{
header('Location: ../error.php');
}
?>
:
$query1 = "INSERT INTO users(firstname, lastname, user_id, status) VALUES (?, ?, ?, ?)" ;
$stmt = $db->prepare($query1);
$stmt->execute(array($firstname, $lastname, $_SESSION['user_id'], $status));
// the below code will execute if your insertion is successful
$query2 = "UPDATE accounts SET status='1' WHERE user_id='" . $_SESSION['user_id'] ."'" ;
// set the header location to go to another page
$id = $db->lastInsertId();
header('Location: ../success.php?id='.$id);
}else{
header('Location: ../error.php');
}
做u試圖執行更新查詢? –
是的,更新查詢正在工作 – John
我看不到這裏的$ query2-> execute()。 –