MySQLのUNHEX()に相当するPHP関数とは?hex2bin()の使い方を解説
PHPにおけるMySQLのUNHEX()相当の関数
MySQLのUNHEX()関数と同じ処理をPHPで行いたい場合は、hex2bin()関数を使用します。この関数は、16進数形式の文字列をバイナリデータ(元の文字列)に変換するもので、まさにMySQLのUNHEX()に相当する機能を持っています。
hex2bin()の基本構文
構文は以下の通りです。
$anyVariableName = hex2bin("yourHexadecimalValue");引数には16進数の文字列を指定し、戻り値として変換後のバイナリデータが返されます。
PHPでの実装例
実際にhex2bin()を使用したサンプルコードを見てみましょう。
$myFirstValue = hex2bin("7777772E4D7953514C4578616D706C652E636F6D");
var_dump($myFirstValue);
$mySecondValue = hex2bin("416476616E6365644A617661576974684672616D65776F726B");
echo('<br>');
var_dump($mySecondValue);このコードを実行すると、16進数の文字列がそれぞれ「www.MySQLExample.com」と「AdvancedJavaWithFramework」という文字列に変換されて出力されます。
MySQLのUNHEX()との比較
参考として、MySQL側で同じ変換を行った場合の結果も確認してみましょう。
ケース1:次のクエリを実行します。
mysql> SELECT UNHEX("7777772E4D7953514C4578616D706C652E636F6D");実行結果は以下の通りです。
+---------------------------------------------------+
| UNHEX("7777772E4D7953514C4578616D706C652E636F6D") |
+---------------------------------------------------+
| www.MySQLExample.com |
+---------------------------------------------------+
1 row in set (0.00 sec)ケース2:次のクエリを実行します。
mysql> SELECT UNHEX("416476616E6365644A617661576974684672616D65776F726B");実行結果は以下の通りです。
+-------------------------------------------------------------+
| UNHEX("416476616E6365644A617661576974684672616D65776F726B") |
+-------------------------------------------------------------+
| AdvancedJavaWithFramework |
+-------------------------------------------------------------+
1 row in set (0.00 sec)まとめ
このように、PHPのhex2bin()はMySQLのUNHEX()と完全に同等の動作をし、同じ16進数値から同一の結果が得られることが確認できます。なお、hex2bin()はPHP 5.4.0以降で利用可能です。不正な16進数を渡した場合には警告が発生し、falseが返される点にも注意して使用しましょう。
-
MySQLのTIME_TO_SEC()に相当するPHPの関数は?日時を秒に変換する方法
MySQLのTIME_TO_SEC()とPHPのstrtotime()MySQLでは、時間を秒数に変換するためにTIME_TO_SEC()関数を使用できます。一方、PHPで日時(datetime)を秒に変換したい場合は、strtotime()関数がその役割を果たします。MySQLにおけるTIME_TO_SEC()の基本的な構文は以下の通りです。SELECT TIME_TO_SEC(ABS(timediff(yourDateTimeValue,now())));次に、PHPのstrtotime()を使って日時を秒に変換する具体的な方法を見ていきましょう。XAMPPサーバーの準備PHPプログラムを
-
MySQLのSMALLINTに相当するJavaの型は?short型との対応関係を解説
MySQLのSMALLINTに相当するJavaのデータ型は、short型です。Javaのshort型は2バイト(16ビット)の符号付き整数で、-32768から32767までの範囲の値を扱うことができます。MySQLのSMALLINTも同様に2バイトで、同じ範囲の値を格納可能です。MySQLのSMALLINTとJavaのshort型の比較項目MySQL(SMALLINT)Java(short)サイズ2バイト(16ビット)2バイト(16ビット)値の範囲-32768 ~ 32767-32768 ~ 32767備考UNSIGNEDを指定すると0 ~ 65535になる符号付きのみなお、MySQLでUNS