Преобразовать числовое значение из php в varbinary в mysql

В базе данных MYSQL у меня есть varbinary(255) поле.

В моем PHP-скрипте я пытаюсь передать ввод строки (в десятичной или шестнадцатеричной форме) в MYSQL, чтобы сохранить значение в varbinary (255). Я попытался передать значение в десятичном, шестнадцатеричном и двоичном виде, но ни один из них не дал мне правильное значение.

$val = "0x54321";                   // Used hardcoded hex value here, but it can be also decimal in my code
$v_dec = intval($val,0);            // That's why I have intval() here
$v_hex = dechex(intval($val,0));
$v_bin = decbin(intval($val,0));
$v_bin_2 = (binary)intval($val,0);

Я попытался вставить эти значения с помощью обычного INSERT запрос, но каждый из них дал странные цифры.

Variable  Converted Value (in php)    varbinary Value (in MYSQL)
v_dec:    344865                 ->   333434383635
v_hex:    54321                  ->   3534333231
v_bin:    1010100001100100001    ->   31303130313030303031313030313030303031
v_bin2:   344865                 ->   333434383635

В каком типе данных должно быть значение? Я хочу сделать преобразование в php вместо использования CAST() в запросе MYSQL. Спасибо!

РЕДАКТИРОВАТЬ:
Я хочу правильно отобразить сохраненное значение varbinary в шестнадцатеричном формате.

РЕДАКТИРОВАТЬ:
Нашел проблему. Проблема заключалась в том, как я получал значение. Вместо HEX(value)Я нашел это как BIN(value) на уровне MySQL, а затем преобразовал его в гекс с dechex(bindec($value)) в php.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]