php - 从 Android 通过 PHP 将 byte[] 存储到 SQL Server 中的 varbinary(MAX)
问题描述
我正在使用 SQL Server (MSSQL) DB,表 CUST_BIO 有一个数据类型为 varbinary(MAX) 的 CustData 列。我正在使用 Android App 使用 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 webservice 并将其存储在$custData变量中。
我正在尝试将图像存储到数据库中,其他论坛上有很多建议说这不是有效的方式,但我使用这种方式有局限性。
谁能指导我解决这个问题?
解决方案
推荐阅读
- state - 如何将 doActivity 行为添加到 IBM Rhapsody 中的状态机状态?
- spring-batch - Spring Batch:HikariPool-1 - 连接不可用,请求在 30000 毫秒后超时
- caching - 使用具有复合主键的表将带有 Postgresql 的 Ignite Cache 配置为第 3 方持久性
- python - 学习率如何影响 Back Prop 中的梯度
- python - 有没有办法找到带有 NaN 的行,然后删除它以及之后的 n 行?
- angular - ngTemplateOutlet 是如何工作的?
- api - 无法使用 scim 2.0 API wso2 IS 从组中删除用户
- javascript - 用于检查空值的筛选表达式是否存在于数组中或 DynamoDB 中
- rx-java - RXJava - 快速生产者/慢消费者
- c# - 如何使用 ffmpeg 仅保存记录的最后 60 秒?