![](/img/trans.png)
[英]how to insert array data in single column in mysql using codeigniter
[英]How to insert data using mysql encode function in codeigniter
我正在使用Codeigniter,並且想在Mysql中使用encode()
函數對字符串進行encode()
。 有沒有辦法使用$this->db->insert($table_name, $data);
使用該功能$this->db->insert($table_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);
}
任何幫助,將不勝感激。 謝謝。
為什么不對數據進行簡單編碼然后發送。
$this->db->insert($table_name, encode($data));
要么
$data = array();
$data = encode($data);
$this->db->insert($table_name, $data);
要么
$data = array();
$data = 'ENCODE('. $data .')';
$this->db->insert($table_name, $data);
從此處進行編輯:正如名稱所暗示的那樣,MYSQL函數Encode()對數據進行編碼,然后您可以使用反向函數對數據進行解編碼。
我的建議是使用諸如base64_encode的簡單名稱,該名稱與反向功能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);
}
您還可以使用CI內置加密庫: 解決方案2可以在以下位置找到更多詳細信息: https : //www.formget.com/codeigniter-encrypt/
我通過在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);
}
我不知道這是否是正確的方法,但是它解決了我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.