Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

PHP เทียบเท่า MySQL UNHEX() คือ hex2bin()

ฟังก์ชัน 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()

การทำงานMySQLPHP
Binary → Hex StringHEX()bin2hex()
Hex String → BinaryUNHEX()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 ที่มีความยาวคู่ (คู่ตัวอักษร) มิฉะนั้นจะ error
  • UNHEX() คืนค่า binary string อาจต้อง CAST เป็น CHAR เพื่อแสดงผล
  • Character encoding: ต้องตรงกันระหว่าง PHP และ MySQL (แนะนำ UTF-8)