PHP / MySQL: Depolama ve UUIDs alınıyor

1 Cevap php

Ben tabloları bir çift UUIDs eklemek için çalışıyorum, ama bu almak / saklamak için en iyi yolu ne olurdu emin değilim. Ben bunun yerine VARCHAR (36) İKİLİ (16) kullanmak çok daha verimli anlıyorum. Biraz araştırma yaptıktan sonra, ben de sizinle ikili bir UUID dize dönüştürebilirsiniz bulundu:

 UNHEX(REPLACE(UUID(),'-',''))

Benim cehalet pardon, ama PHP ile bu kolay bir yol var ve gerektiğinde daha sonra okunabilmesi için, bir dizeye geri çevirmek?

Ben yerine AUTO_INCREMENT birincil anahtar olarak kullandım Ayrıca, eğer çok fark olur?

EDIT:

Cevap buldu kısmı:

 $bin = pack("h*", str_replace('-', '', $guid));

Bunu nasıl açmak istiyorsunuz?

1 Cevap

- Tamam benim kendi soruyu yanıtlamak için denemek için gidiyoruz. Bu benim ile gelebilir en iyisi:

Paketi:

$binary =  pack("h*", str_replace('-', '', $string));

Açmak

$string = unpack("h*", $binary);
$string = preg_replace("/([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})/", "$1-$2-$3-$4-$5", $string);

Bu herkes görebilir herhangi bir sorun var mı?