簡體   English   中英

使用PHP更新MySQL數據庫

[英]Updating a MySQL database using PHP

嗨,我正在嘗試使用php更新我的mysql數據庫。 我可以用以下內容完美地更新它:

<?php

$conn = mysqli_connect("localhost", "root", "", "logintest");

if(!$conn){
    die("Connection failed: ".mysqli_connect_error());
}
?>

<?php

    $sql = "UPDATE user SET bot = '1' WHERE id = 9";

    if($conn -> query ($sql) === TRUE){
        echo "record updated successfully";
    }else{
        echo "Error updating record" . $conn -> error;
    }

    $conn -> close ();

?>

但是在將上面的bot列更新為1之前,我想檢查一下它是否為0,因為它只能是0或1。為此,我執行了以下操作(請參見下文),但它不起作用,是可能,或者是否有其他方法? 感謝所有幫助,謝謝!!

$sql = "SELECT bot FROM user"; // bot is the column in the table which should be 0 or 1

        if( $sql == '0') { //if its 0 i can update it

            echo 'here'; //if i get here i will update using code above
     }

有兩種方法

  1. SELECTUPDATE

     $query = "SELECT bot FROM user where id=9" $res = $conn->query($query); if ($res->num_rows == 1) { // it should return only one row as id is unique $row = $result->fetch_assoc() if($row["bot"] == 0){ // UPDATE } } 
  2. CASE構造

     UPDATE user SET bot = CASE WHEN bot = 0 THEN 1 ELSE bot END WHERE id='9' 

這個怎么運作:

它會根據匹配案例的返回值來更新機器人值。 如果當前bot值為0 ,則返回1 ,否則返回id=9行的current value

優勢:僅1個查詢

請試試

<?php

$conn = mysqli_connect("localhost", "root", "", "logintest");

if(!$conn){
    die("Connection failed: ".mysqli_connect_error());
}

$sql= "SELECT bot FROM user where columnid=value"; // change is according to your real value
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        if($row["bot"] == 0){
            $sql = "UPDATE user SET bot = '1' WHERE id = 9";

            if($conn -> query ($sql) === TRUE){
                echo "record updated successfully";
            }else{
                echo "Error updating record" . $conn -> error;
            }
        }
    }
}

$conn -> close ();
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM