繁体   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