[英]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
}
有两种方法
SELECT
和UPDATE
$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 } }
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.