我有一个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()。 –