Мы пытались использовать DUnit с Дельфи 5, но это не работало хорошо. Особенно, если Вы реализуете COM-интерфейсы, мы нашли, что много зависимостей установили всю тестовую инфраструктуру. Я не знаю, улучшилась ли тестовая поддержка в более новых версиях.
Функция PHP sha1
возвращает строковое представление шестнадцатеричного числа.
Это означает, что если вы распечатаете его на экране, оно отобразит шестнадцатеричное число. . Но в памяти это набор символов ASCII.
Итак, возьмем шестнадцатеричное число 1A2F
. Как ASCII в памяти, это будет 0x31413246
, вместо 0x1A2F
обычный интерфейс MySQL отправляет все аргументы в виде строк. При использовании обычного интерфейса MySQL преобразует строку ASCII в двоичное значение.
Новый метод подготовленного оператора отправляет все как двоичное. Итак, ваше красивое значение «1A2F» теперь будет отправлено как 0x31413246 и вставлено в столбец. - источник: dev.mysql.com - Подготовленные операторы
Вместо этого преобразуйте свою шестнадцатеричную строку, упаковав ее в двоичную строку, используя:
попробуйте вместо этого:
if($stmt = $mysqli->prepare("INSERT INTO table (id, field1) VALUES (unhex(?), ?)") {
$stmt->bind_param('ss', $id, $field1);
//execute statement
}