Как сохранить php-результат md5 («test», true) в поле BINARY таблицы MyISAM MySQL

0

Как я могу сохранить результат:

$store = md5("test", true);

mysql_query(...)

в mysql db со строковым запросом?

Теги:
hash
md5

2 ответа

1
Лучший ответ

Если вы хотите сохранить его в двоичном формате, вы должны передать двоичные данные как hex в MySQL:

$md5 = md5('test'); // Returns MD5 in HEX
mysql_query("INSERT INTO `table` (`field`) VALUES (0x" . $md5 . ")");

Не беспокойтесь о том, что MySQL обрабатывает это как целое, это не так. Поэтому, если поле объявлено как BINARY/BLOB, шестнадцатеричное значение будет интерпретироваться как двоичное.

  • 0
    это лучше практики, чем использовать "VALUES ('$ store')"?
  • 1
    Конечно, потому что двоичный файл в обычной строке запроса может создать проблемы. Поэтому безопаснее передавать их в кодированном виде.
Показать ещё 3 комментария
1

Создайте поле BINARY (16) с индексом.

$store = md5("test", true);
mysql_query("INSERT INTO `Table` (`Field`) VALUES ('$store')");
  • 0
    Я экранирую значение $ store с помощью mysql_real_escape_string, это правильно? Я могу сохранить двоичную строку, используя ('$ store')?
  • 0
    Да, ты можешь. Побег - это очень хорошая практика.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню