【问题标题】:Unable to update mySQL dynamically for Numeric & string values无法为数字和字符串值动态更新 mySQL
【发布时间】:2016-04-18 06:12:04
【问题描述】:
$colName = $this->input->post('colName');
$value = $this->input->post('value');
$jobId= $this->input->post('jobId');

$this->db->query("UPDATE test set ".$colName." = ".$value." where id= ".$jobId);

我能够更新数值。然而得到一个错误

错误号:1054

“字段列表”中的未知列“345drt”

更新测试集 TTDNo1 = 345drt 其中 id = 41

如何更新数据库中的数字、字符串和日期字段?

【问题讨论】:

  • "UPDATE test set $colName = '$value' where id = '$jobId'"
  • col TTDNo1 在 db 中分配了什么数据类型,@VDS

标签: php mysql


【解决方案1】:

试试这个

$this->db->query("UPDATE test set ".$colName." = '".$value."' where id= ".$jobId);

【讨论】:

  • 它正在 DB 中更新,但是在浏览器上出现“您提交的 URI 包含不允许的字符”的错误。
  • 我之前添加了 "" before column name as it safe: "UPDATE test set ".$colName."` = '".$value."' where id=".$jobId.您确定您的列名是“345drt”吗?
  • 你有字段/列名“345drt”吗?
  • colName 是“TTDNo1”。值为“345drt”
  • 在浏览器中回显您的更新查询并确认您的值必须被引用我的意思是说更新查询必须是:UPDATE test set TTDNo1 = '345drt' where id = 41 or UPDATE test set TTDNo1 = '345drt' where id = 41 or UPDATE test set TTDNo1 = "345drt" where id = 41
【解决方案2】:

试试这样:

$this->db->query("UPDATE test set ".$colName." = '".$value."' where id= ".$jobId);

【讨论】:

    【解决方案3】:

    “字段列表”中的未知列“345drt”

    看起来你的列名值错误,你把值放在列名中尝试打印 $colName 和 $value 的值,然后执行查询 并像@Dipanwita Kundu 那样进行查询

    【讨论】:

    • colName 是“TTDNo1”。值为“345drt”
    • echo "更新测试集 ".$colName." = ".$value." where id= ".$jobId;将此回显的结果粘贴到此处的 cmets 中'
    • 查询应该是这样的 "UPDATE test set" 。 $colName 。 “='”。 $价值。 "' 其中 id=" 。 $jobId; 并且回显值为 UPDATE test set TTDNo1 = '345drt' where id= 41
    • 更新测试集 TTDNo1 = '56ttt' 其中 id = 41
    【解决方案4】:

    由于列是 varchar,您应该尝试连接您的变量:

    $this->db->query("UPDATE test set ".$colName." = '".$value."' where id= '".$jobId."' ");
    

    【讨论】:

    • @VDS,答案是否解决了您的问题。请接受任何解决您问题的答案。所以对其他用户也有帮助
    猜你喜欢
    • 2020-01-07
    • 2013-03-09
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多