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
。