Php 是否基于两列的$\u POST值将列值更新为NULL?

Php 是否基于两列的$\u POST值将列值更新为NULL?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,尝试基于另一列值$\u POST['pid']将列$\u POST['dtf']值更新为null,但此操作无效。我已经尝试了MySQL语句的不同版本,但没有任何效果。 阿贾克斯 PHP HTML 这是您的代码: $sql = "UPDATE tasks SET '".$_POST['dtf']."' = NULL WHERE pid = ?"; 这将生成如下查询: UPDATE tasks set 'foo' = null where pid = ? 这是无效的MySQL。在ANSI SQL

尝试基于另一列值$\u POST['pid']将列$\u POST['dtf']值更新为null,但此操作无效。我已经尝试了MySQL语句的不同版本,但没有任何效果。 阿贾克斯

PHP

HTML

这是您的代码:

$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 = ?";

$.remove-tf.attrvalue将是DOM中第一个.remove-tf元素的值,而不是用户单击的元素的值。应使用$this.val获取单击元素的值。而$.pid.attrvalue应为$this.prev.pid。val@Suboptimizer他用的是事先准备好的陈述。但是列名不能使用占位符。为什么$this.prev.pid.val?我能不能仅仅根据元素的类名来获取元素的值?在我的真实代码中,它们不是直接相邻的
UPDATE tasks set 'foo' = null where pid = ?
$sql = "UPDATE tasks SET ".$_POST['dtf']." = NULL WHERE pid = ?";
$sql = "UPDATE tasks SET `".$_POST['dtf']."` = NULL WHERE pid = ?";