sql >> Databáze >  >> RDS >> Mysql

PHP- vkládání binárních dat do mysql pomocí připravených příkazů

sha1 PHP funkce vrací řetězcovou reprezentaci hexadecimálního čísla.

To znamená, že pokud jej vytisknete na obrazovku, zobrazí se hexadecimální číslo. Ale v paměti je to hromada ASCII znaků.

Vezměte tedy hexadecimální číslo 1A2F . Jako ASCII v paměti by to bylo 0x31413246 , namísto 0x1A2F

Normální rozhraní MySQL posílá všechny argumenty jako řetězce. Při použití normálního rozhraní převede MySQL řetězec ASCII na binární hodnotu.

Nová metoda připraveného výpisu odesílá vše jako binární. Takže vaše pěkná hodnota "1A2F" bude nyní odeslána jako 0x31413246 a vložena do sloupce. - zdroj:dev.mysql.com - Připravené výpisy

Místo toho převeďte svůj hexadecimální řetězec jeho zabalením do binárního řetězce pomocí:

$binId = pack("H*", $id); // this string is not ASCII, don't print it to the screen! That will be ugly.

a poté předejte $binId na připravený příkaz MySQLi namísto $id.



  1. C# volání oracle uložené funkce

  2. Syntaxe SQL DROP TABLE – Zobrazuje DBMS

  3. Aktualizujte tabulku mysql daty z jiné tabulky

  4. Obsahuje MS SQL Server hranice rozsahu?