Php 如果查询未更新
我想知道将我的查询转换成if语句的最佳方法。因为我想为我的codeigniter edit主函数使用一个函数 所以它结合了这两个查询,如果查询不是更新,那么插入方式就是最好的方式Php 如果查询未更新,php,codeigniter,Php,Codeigniter,我想知道将我的查询转换成if语句的最佳方法。因为我想为我的codeigniter edit主函数使用一个函数 所以它结合了这两个查询,如果查询不是更新,那么插入方式就是最好的方式 public function addUserGroup($data) { $this->db->query("INSERT INTO " . $this->db->dbprefix . "user_group SET name = " . $this->db->e
public function addUserGroup($data) {
$this->db->query("INSERT INTO " . $this->db->dbprefix . "user_group SET
name = " . $this->db->escape($data['name']) . ",
permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . " ");
}
public function editUserGroup($user_group_id, $data) {
$this->db->query("UPDATE " . $this->db->dbprefix . "user_group SET
name = " . $this->db->escape($data['name']) . ",
permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . " WHERE user_group_id = '" . (int)$user_group_id . "'");
}
尝试在变量中保存值,并将变量传递给查询,并尝试向查询变量添加正确的引号
public function addUserGroup($data) {
$perm = (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '');
$this->db->query("INSERT INTO " . $this->db->dbprefix . "user_group SET name = '" . $this->db->escape($data['name']) . "', permission = '" .$perm. "' ");
}您可以通过一个非常简洁的查询来实现这一点:
"INSERT INTO " . $this->db->dbprefix . "user_group SET name = " .
$this->db->escape($data['name']) . ",
permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') .
" ON DUPLICATE KEY UPDATE ".
$this->db->dbprefix . "user_group SET name = " .
$this->db->escape($data['name']) . ",
permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . "
WHERE user_group_id = '" . (int)$user_group_id . "'");
唯一需要的是表上的主键您可以使用“用户组id”设置if/else条件。我想这一定是来自post数组,比如
$this->input->post('user\u group\u id')
因此,您可以创建一个函数来检查以下条件:
function my_function(){
if($this->input->post('user_group_id')){
// call update query
}else{
// call insert query
}
}
问题不清楚,您可以修改这里使用的内容。更新记录,如果@rowcount=0,则添加
,插入……