Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将自动增量值指定给另一个字段_Php_Codeigniter - Fatal编程技术网

Php 将自动增量值指定给另一个字段

Php 将自动增量值指定给另一个字段,php,codeigniter,Php,Codeigniter,我需要你的帮助。我有一个表,有3列(id、名称、文件名)name和filename是一个字符串。id字段是AUTO_INCREMENT,所以我不必在数组中发布它。但是问题出在filename字段上,该字段是id和name与“-”分隔符的组合字符串。 我对filename的预期结果是 +---+-------+-----------+ |id | Name | Filename | +---+-------+-----------+ | 1 | James | 1-James | | 2

我需要你的帮助。我有一个表,有3列(id、名称、文件名)
name
filename
是一个字符串。
id
字段是
AUTO_INCREMENT
,所以我不必在数组中发布它。但是问题出在
filename
字段上,该字段是
id
name
与“-”分隔符的组合字符串。 我对
filename
的预期结果是

+---+-------+-----------+
|id | Name  | Filename  |
+---+-------+-----------+
| 1 | James | 1-James   |
| 2 | John  | 2-John    |
| 3 | Clark | 3-Clark   |
+---+-------+-----------+
我的代码是:
    $data = array(  
        'name' = $this->input->post('name');
        'filename' =$this->input->id->post('name');
    )

    $this->db->insert('dbname', $data)
?>

您需要首先插入数据。然后获取最后一个插入的Id,并使用它更新记录

$data = array(  
        'name' => $this->input->post('name');
        'filename' => $this->input->id->post('name');
    )

    $this->db->insert('dbname', $data);
    $last_id = $this->db->insert_id();
    $new_file_name = $last_id."-".$this->input->post('name');
    $update_data = array(
        'filename' => $new_file_name;
      );
    $this->db->where('id',$last_id);
    $this->db->update('dbname', $update_data);

您需要首先插入数据。然后获取最后一个插入的Id,并使用它更新记录

$data = array(  
        'name' => $this->input->post('name');
        'filename' => $this->input->id->post('name');
    )

    $this->db->insert('dbname', $data);
    $last_id = $this->db->insert_id();
    $new_file_name = $last_id."-".$this->input->post('name');
    $update_data = array(
        'filename' => $new_file_name;
      );
    $this->db->where('id',$last_id);
    $this->db->update('dbname', $update_data);

您必须首先执行insert(仅使用名称),获取insert\u id($this->db->insert\u id()),然后使用文件名更新行。您不能将其存储在数据库中,并在需要时动态“生成”文件名。您可以在表上运行触发器,以设置动态文件名。我建议您不要这样做。你现在所有的数据都翻了一倍。只需创建一个类似的:
函数getFilename($user){return$user->getId().-'.$user->getName();}
我不喜欢在数据库中做这样的事情,因为你很容易忘记你在做什么。我喜欢直接在代码中看到这些东西。但这可能只是个人的事情。您必须首先执行insert(仅使用名称),获取insert\u id($this->db->insert\u id()),然后使用文件名更新行。您不能将其存储在数据库中,并在需要时动态“构建”文件名。您可以在表上运行触发器,要设置动态文件名,我建议您不要这样做。你现在所有的数据都翻了一倍。只需创建一个类似的:
函数getFilename($user){return$user->getId().-'.$user->getName();}
我不喜欢在数据库中做这样的事情,因为你很容易忘记你在做什么。我喜欢直接在代码中看到这些东西。但也许这只是个人的事情。