Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 如何在codeigniter中使用mysql编码函数插入数据_Php_Mysql_Codeigniter 3 - Fatal编程技术网

Php 如何在codeigniter中使用mysql编码函数插入数据

Php 如何在codeigniter中使用mysql编码函数插入数据,php,mysql,codeigniter-3,Php,Mysql,Codeigniter 3,我正在使用Codeigniter,我想使用Mysql中的encode()函数对我的字符串进行编码。有没有一种方法可以使用$this->db->insert($table\u name,$data)来使用该函数在Codeigniter中?以下是我的示例代码: CI控制器: $data_array('id' => 1, 'name' => 'Juan Dela Cruz'); $this->load->model('data_mdl'); $this->data_mdl

我正在使用Codeigniter,我想使用Mysql中的
encode()
函数对我的字符串进行编码。有没有一种方法可以使用
$this->db->insert($table\u name,$data)来使用该函数在Codeigniter中?以下是我的示例代码:

CI控制器:

$data_array('id' => 1, 'name' => 'Juan Dela Cruz');
$this->load->model('data_mdl');
$this->data_mdl->_insert($data_array);
CI模型:

public function _insert($data) {
 return $this->db->insert($table_name, $data);
}
public function _insert($data) {
 return $this->db->insert($table_name, $data);
}

任何帮助都将不胜感激。谢谢。

为什么不简单地对数据进行编码然后发送呢

$this->db->insert($table_name, encode($data));

从这里编辑: MYSQL函数Encode()顾名思义就是对数据进行编码,然后使用reverse函数取消对数据的编码

我的建议是使用简单的base64_编码,它与反向函数base64_decode的原理相同

在这种情况下,您将使用以下代码:解决方案1

CI控制器:

// ENCODING
$data_array = array('id' => 1, 'name' => 'Juan Dela Cruz');
$serialized = serialize($data_array); 
$encoded = base64_encode($serialized);

$this->load->model('data_mdl');
$this->data_mdl->_insert($encoded);


// DECODING     
$encoded = //DO QUERY HERE TO GET ENCODED DATA;
$decoded = base64_decode($encoded);
$unserialized = unserialize($decoded); 
CI模型:

public function _insert($data) {
 return $this->db->insert($table_name, $data);
}
public function _insert($data) {
 return $this->db->insert($table_name, $data);
}
您还可以使用CI内置加密库:解决方案2
更多细节可以在这里找到:

我通过在我的CI模型中使用
$this->db->set()
函数来解决我的问题

public function _insert($data) {
 $this->db->set('name', 'ENCODE(\'' . $data['name'] . '\', \'mysecretkey\')', false);
 unset($data['name']);
 return $this->db->insert($table_name, $data);
}

我不知道这是否是正确的方法,但它解决了我的问题。

你能展示一下你尝试使用
encode()
但不起作用的代码吗?嗨,我不知道如何在
$this->db->insert($table\u name,$data)中使用它
但我知道如何使用Mysql查询来使用它,比如
插入MyGuests(name)值(ENCODE('Juan Dela Cruz','mysecretkey')”;
我可以使用
$this->db->query(“插入MyGuests(name)值(ENCODE('Juan Dela Cruz','mysecretkey')”);
来执行Mysql查询,但我想知道
$this->db->INSERT是否有办法($table_name,$data);
CI函数,该函数也将产生相同的输出。感谢您的回答,并告知我们是否存在任何问题。请参阅上面编辑的问题。我输入了一些我使用的代码。我将很快为您提供完整的PHP解决方案,键入up将很快为您提供完整的PHP解决方案,键入up