Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP更新MySQL数据库_Php_Mysql - Fatal编程技术网

使用PHP更新MySQL数据库

使用PHP更新MySQL数据库,php,mysql,Php,Mysql,嗨,我正在尝试使用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

嗨,我正在尝试使用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 ();

?>
请试一试

<?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 ();
?>
有两种方法

选择并更新

案例结构

UPDATE  user SET bot = CASE 
    WHEN bot = 0 
       THEN 1 
       ELSE bot 
    END 
WHERE id='9'
工作原理:

它根据匹配案例的返回值更新bot值。若当前bot值为0,则返回1,否则返回id=9的行的当前值


优点:只有1个查询

您需要执行查询,而不仅仅是将其存储在变量中:对不起,我对这一点比较陌生,我该怎么做?谢谢,如果在代码中有if x===TRUE,那就没用了。在大多数情况下,只需使用if x进行测试。为什么OP要尝试这个呢?一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客,以便他们可以找到这个问题并阅读你的答案。
$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 
  }
}
UPDATE  user SET bot = CASE 
    WHEN bot = 0 
       THEN 1 
       ELSE bot 
    END 
WHERE id='9'