【CodeIgniter】CodeIgniterでできると思ってたものができず焦った件

研究
Khwanchai Phanthong at Pexels
この記事は約2分で読めます。
SELECT HEX(AES_ENCRYPT('hogehoge', '暗号化のタネ')) as enc_password FROM `account`

こういうことやりたかったんですが。

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'];

なんか乱暴なことした様な気がするけどまあいい。

コメント

タイトルとURLをコピーしました