使用Ci Update更新表格时出现问题。 这是我的代码
$db = $this->input->post('db');
$tbl = $this->input->post('tbl');
$name = $this->input->post('name');
$col = $this->input->post('col_name');
$id = $this->input->post('id');
$array = array($col => $name);
$this->db->where('id',$id);
$this->db->update("`$db`.`$tbl`", $array);
问题是数据库名称。数据库名称可以包括“。”标志。例如(db3.9)
所以Ci就像这样生成更新查询
UPDATE `db3`.`9`.`mytbl` SET `name` = 'myname' WHERE `id` = 1
所以任何人都可以告诉我如何解决这个CI更新自动转义解决方案 PS。从此查询中删除数据库名称不是我想要的 因为数据库,表和列是动态的。所以我无法全局定义数据库,表和列。
答案 0 :(得分:1)
或许使用ci的查询功能来避免自动转义
$db = $this->input->post('db');
$tbl = $this->input->post('tbl');
$name = $this->input->post('name');
$col = $this->input->post('col_name');
$id = $this->input->post('id');
$this->db->query("UPDATE `$db`.`$tbl` SET `$col` = '$name' WHERE `id` = '$id';");
我没有看到许多人在他们的数据库名称中使用点的例子(即使它在技术上是允许的),但我常常看到使用下划线。
答案 1 :(得分:0)
在定义dbname时使用转义字符???喜欢$db = "db3/.9"