尝试基于另一个列值(/SuiteBundles/bundleId/clientScript.js
/SuiteBundles/bundleId/ueScript.js
)将列($_POST['dtf']
)值更新为null,但无法正常工作。我尝试了不同版本的MySQL语句,但无济于事。
AJAX
$_POST['pid']
PHP
$(function() {
$(".remove-tf").click(function() {
$.ajax({
type: 'POST',
url: 'tf-delete.php',
data: 'pid=' + $(".pid").attr("value") + '&dtf=' + $(this).val()
});
});
});
HTML
<?php
include 'sqlconnection.php';
$conn = OpenCon();
$sql = "UPDATE tasks SET '".$_POST['dtf']."'=NULL WHERE pid=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $_POST['pid']);
if ($stmt->execute()){
header('Location: listings.php');
};
$stmt->close();
CloseCon($conn);
?>
答案 0 :(得分:1)
这是您的代码:
$sql = "UPDATE tasks SET '".$_POST['dtf']."' = NULL WHERE pid = ?";
这将产生一个查询,例如:
UPDATE tasks set 'foo' = null where pid = ?
这是无效的MySQL。列名不应用单引号引起来(在ANSI SQL中,字符串斜体使用单引号引起来)。
只需将代码更改为:
$sql = "UPDATE tasks SET ".$_POST['dtf']." = NULL WHERE pid = ?";
或者,如果您想使用带引号的标识符,请使用反引号:
$sql = "UPDATE tasks SET `".$_POST['dtf']."` = NULL WHERE pid = ?";