PHP:if语句测试DB值是否等于数字-如果为true,则执行多个SQL查询

时间:2018-07-20 18:25:04

标签: php mysql database mysqli phpmyadmin

你好,我正在尝试使php代码在某个数据库值等于1时执行多个sql查询。如果该值不等于1,则将页面重定向到oops.php。


到目前为止,这是我的代码:

<?php
session_start();

$servername = "localhost";
$username = "myUser";
$password = "myPass";
$dbname = "cashball_accounts";
$cash_amount = $_SESSION['cash_amount'];

// Create connection

$userid = $_SESSION['id'];

$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Fetch the existing value of the cash_amount against that particular user here. You can use the SELECT cash_amount from users where userid = $userid

$_SESSION['cash_amount'] += $_POST['cashmade'];

$sql = "UPDATE users SET cashincheck = 0 WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $userid);
$result = $stmt->execute();


if($result)
{
   echo "cashin complete!";
}
else
{
   echo mysqli_error($conn);
   session_start();
   session_unset();
   session_destroy();
}

$conn->close();
?>

因此,如果变量“ cashincheck”在数据库中等于1,我希望从// Fetch注释到if($ result)的所有内容都执行。

例如:

if(SELECT cashincheck FROM users WHERE id = ? = 1) {

$_SESSION['cash_amount'] += $_POST['cashmade'];

$sql = "UPDATE users SET cashincheck = 0 WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $userid);
$result = $stmt->execute();


    } else {
//redirect to oops.php
}

** / \我知道这根本行不通,只是一个例子/ **

我还想创建其他几个if语句并相应地更新数据库,这意味着需要更多的sql查询和if语句,那么我将如何添加更多的语句?

另一个单独的if语句的示例:

 if($_POST['cashmade'] < $_POST['type']) {

    $sql = "UPDATE users SET moneymade = moneymade + $_POST['cashmade'] WHERE id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param('s', $userid);
    $result = $stmt->execute();

} else {

    $sql = "UPDATE users SET moneylost = moneylost + $_POST['type'] - $_POST['cashmade'] WHERE id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param('s', $userid);
    $result = $stmt->execute();
}

0 个答案:

没有答案