Mysqli更新不起作用


mysqli update didn't work

idk 哪里有错误的部分,但更新查询不起作用。

这是形式

<form method="post">
                    <input type="checkbox" name="ceksetuju" id="cekbox" value="YA" required>
                    <label for="cekbox">dengan ini saya setuju dengan syarat dan ketentuan yang berlaku</label><br>
                    <input type="submit" name="agree" class="button special small" value="Next">
                </form>

这是我的PHP文件

//CONNECT DATABASE
$db = new mysqli('localhost', 'root', '130395', 'dbtest');
//UPDATE TABLE LIRIK
if (isset($_POST['agree'])) {
$id=mysqli_real_escape_string($db,$_GET['id_lirik']);
$uname=$userRow['user_name'];
$ceksetuju=$_POST['ceksetuju'];
$sqlupdate ="UPDATE lirik set setuju_taken='$ceksetuju',taken_by ='$uname' FROM lirik where id_lirik='$id' ";
$resultupdate = $db->query($sqlupdate);
if ($resultupdate) {
    echo "success";
}
else{
    echo "failed";
   }
}

结果总是"失败"。 所以,有人可以告诉我出了什么问题吗?

更新查询中无需FROM tablename。尝试使用 -

$sqlupdate = 
"UPDATE lirik set setuju_taken='$ceksetuju',taken_by ='$uname'
 WHERE id_lirik='$id'";

语法

UPDATE [table_name]
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [conditions];

无需在更新查询中使用FROM YOR_TABLE_NAME。您将检查查询更新是否===使用运算符 有关更多详细信息,请查看此链接以获取运算符功能 http://php.net/manual/en/language.operators.comparison.php

以这种方式更改您的代码:

$sqlupdate ="UPDATE lirik set setuju_taken='".$ceksetuju."',taken_by ='".$uname."' where id_lirik= $id";
$resultupdate = $db->query($sqlupdate);
if ($resultupdate === TRUE) {
    echo "success";
}
else{
    echo "failed";
   }

你缺少点:$sqlupdate="UPDATE lirik set setuju_taken='".$ceksetuju."',taken_by ='".$uname."' FROM lirik where id_lirik=".$id.";

注:taken_by ='".$uname."' VS. id_lirik=".$id."我假设taken_by具有 VARCHAR 数据类型,id_lirik具有 INT 数据类型。无论如何,无需在更新查询中使用 FROM table