簡體   English   中英

如何在Codeigniter中使用mysql編碼功能插入數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM