Я использую БД SQL Server (MSSQL), таблица CUST_BIO имеет столбец CustData типа данных varbinary (MAX). Я использую приложение Android для хранения данных в этом столбце с использованием PHP.
public function registerCust($custId, $custData)
{
$sqlString = "INSERT INTO CUST_BIO (CustId,CustData ) values (? ,? ) ; SELECT SCOPE_IDENTITY()";
$params = array($custId, $custData );
$stmt = sqlsrv_query($this->conn, $sqlString, $params);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
$rows = sqlsrv_has_rows($stmt);
$lastId = sqlsrv_get_field($stmt, 0);
echo "\nLast Inserted Id : " . $lastId . "\n";
}
Это дало мне ошибку:
Неявное преобразование из типа данных varchar в varbinary (max) не допускается. Используйте функцию CONVERT, чтобы выполнить этот запрос.
Итак, я изменился
линия
$params = array($custId, $custData );
в
$params = array($custId, CONVERT(varbinary(MAX), $custData );
После обновления этого кода он дал мне еще одну ошибку;
Неустранимая ошибка: вызов неопределенной функции CONVERT ()
Я посылаю byte [] из Android в PHP веб-сервис и сохраняю его в $ custData переменная.
Я пытаюсь сохранить изображение в БД, на других форумах есть много предложений, которые говорят, что это неэффективный способ, но у меня есть ограничения, чтобы использовать этот способ.
Может ли кто-нибудь помочь мне решить эту проблему?
Задача ещё не решена.
Других решений пока нет …