ฟังก์ชัน hex2bin() ใน PHP คือคำสั่งเทียบเท่าของ UNHEX() ใน MySQL
ไวยากรณ์ PHP
$anyVariableName = hex2bin("yourHexadecimalValue");
ตัวอย่างโค้ด PHP
$myFirstValue = hex2bin("7777772E4D7953514C4578616D706C652E636F6D");
var_dump($myFirstValue);
$mySecondValue = hex2bin("416476616E6365644A617661576974684672616D65776F726B");
echo '
';
var_dump($mySecondValue);
ผลลัพธ์ PHP
string(18) "www.MySQLExample.com" string(25) "AdvancedJavaWithFramework"
MySQL UNHEX() เทียบเท่า
กรณีที่ 1
mysql> SELECT UNHEX("7777772E4D7953514C4578616D706C652E636F6D");
ผลลัพธ์:
+---------------------------------------------------+
| UNHEX("7777772E4D7953514C4578616D706C652E636F6D") |
+---------------------------------------------------+
| www.MySQLExample.com |
+---------------------------------------------------+
กรณีที่ 2
mysql> SELECT UNHEX("416476616E6365644A617661576974684672616D65776F726B");
ผลลัพธ์:
+-------------------------------------------------------------+
| UNHEX("416476616E6365644A617661576974684672616D65776F726B") |
+-------------------------------------------------------------+
| AdvancedJavaWithFramework |
+-------------------------------------------------------------+
คู่ฟังก์ชัน: HEX() และ UNHEX() / bin2hex() และ hex2bin()
| การทำงาน | MySQL | PHP |
|---|---|---|
| Binary → Hex String | HEX() | bin2hex() |
| Hex String → Binary | UNHEX() | hex2bin() |
ตัวอย่างกลับกัน (String → Hex)
-- MySQL
SELECT HEX('www.MySQLExample.com');
-- 7777772E4D7953514C4578616D706C652E636F6D
-- PHP
echo bin2hex('www.MySQLExample.com');
// 7777772e4d7953514c4578616d706c652e636f6d
กรณีใช้งานจริง
- เก็บข้อมูล binary (รูปภาพ, ไฟล์) ใน database เป็น hex string
- เข้ารหัส/ถอดรหัสข้อมูลระหว่างแอปพลิเคชันและฐานข้อมูล
- Debug: ดูค่า hex ของข้อมูล binary
ข้อควรระวัง
hex2bin()ต้องการ hex string ที่มีความยาวคู่ (คู่ตัวอักษร) มิฉะนั้นจะ errorUNHEX()คืนค่า binary string อาจต้อง CAST เป็น CHAR เพื่อแสดงผล- Character encoding: ต้องตรงกันระหว่าง PHP และ MySQL (แนะนำ UTF-8)