Contents
前提条件
MySQLで暗号化した文をもらいたかったので
SELECT HEX(AES_ENCRYPT('hogehoge', '暗号化のタネ')) as enc_password FROM `account`
こういうことやりたかったんですが。
CIに移植したら叱られた
CIで直訳するとこうなると思ったんだ。
$this->db->select("HEX(AES_ENCRYPT('hogehoge', '暗号化のタネ')) as enc_password"); $enc_password_query = $this->db->get('account'); $enc_password = $enc_password_query->row_array()['enc_password'];
$enc_password_query->num_rows() = 0になっちゃうんだ。
クエリビルダで吐き出されてるクエリをMySQLWorkBenchで流したらちゃんと帰ってくるから、正しいには正しい筈なんだ。orz
ただ100%正解ではないからCIとか通すといけない。
多分クエリビルダでfromテーブルの指定が不可避なので、そんなレコードおらんのじゃと素直に言われるんだ。
解決
仕方ないからこうやった。
$enc_password = $this->db ->query("select HEX(AES_ENCRYPT('hogehoge', '暗号化のタネ')) as enc_password") ->row_array()['enc_password'];
なんか乱暴なことした様な気がするけどまあいい。
動くかなじゃなくて動かすんです。