2016-03-27 21 views
0

ben veritabanında anahtar değerleri eklemek yerine MYSQL PHP kullanmaya çalışıyorumMYSQL unhex() hem farklı sonuç verir,) PHP HEX2BIN (eşdeğer değildir

select unhex(md5('google.com')) from x; 

Çıktı

HVkg9LRLJ6gCvXfE8FNvWg== 
Ancak
echo hex2bin((md5("google.com"))); 

O PHP

kullanılarak

Y ��K'��w��SoZ 

ıkış ben burada yanlış herhangi bir yardım ne olup bittiğini emin değilim?

Edit1 Joachim Isaksson

enter image description here

cevap

0

Sana ancak MySQL isteminde adresinden seçme yapıyor, bu değer elde PHP ile aynı değeri verir ediyoruz emin değilim;

mysql> select unhex(md5('google.com')); 
+--------------------------+ 
| unhex(md5('google.com')) | 
+--------------------------+ 
| Y �K'��w��SoZ   | 
+--------------------------+ 
1 row in set (0.00 sec) 

Ne görüntülüyorsak aynı şey ait base64 kodlanmış değerdir;

mysql> select to_base64(unhex(md5('google.com'))); 
+-------------------------------------+ 
| to_base64(unhex(md5('google.com'))) | 
+-------------------------------------+ 
| HVkg9LRLJ6gCvXfE8FNvWg==   | 
+-------------------------------------+ 
1 row in set (0.00 sec) 

değeriniz base64 emin değilim kodlanmış alır Nasıl, ancak gösterdiğiniz sorgu MySQL ile ilgisi var gibi görünüyor. PHP'deki değeri nasıl aldığınıza bağlı olabilir.

+0

@HassanAmir SQLFiddle base64, bunları metin olarak kullanılabilir formda çıkarabilmek için ikili değerleri kodlar; ancak bu, doğrudan sorguladığınızda MySQL'in yaptığı anlamına gelmez. Çıktı kesinlikle SQLfiddle özgüdür. –

+0

@HassanAmir [Bu keman] (http://sqlfiddle.com/#!9/9eecb7d/51310) bu efekti gösterir, SQLfiddle, base64 kodlaması olsun ya da olmasın aynı değeri gösterir. –

+0

Ikili (16) mysql sütununda veri girmeye çalışıyoruz, eğer mysql komut satırından unhex kullanarak yaptım, ancak PHP –