关于php:TP6往sqlserver中存文件

sqlserver中存文件用到的字段类型是image,存储16进制数据。之前虽说弄过加了引号,也能失常应用,但其实是谬误的。因而记录一下,以儆效尤!

//上传文件转二进制(本人调的函数,仅供参考)
function file2hex($name)
{
    $fileData = array();
    $fp = fopen($_FILES[$name]["tmp_name"], "rb");
    $content = fread($fp, filesize($_FILES[$name]["tmp_name"]));
    $fileData['data'] = "0x".bin2hex($content);
    $fileData['name'] = $_FILES[$name]["name"];
    $fileData['type'] = $_FILES[$name]["type"];
    $fileData['size'] = $_FILES[$name]["size"];
    fclose($fp);
    return $fileData;
}

//sql语句(因为公司数据库字段名都是中文,所以用的原生,重点是image类型的不要加引号)
$sql="UPDATE ....,数据=$fileData[data] WHERE ....";

最重要的就是sql语句中转换好的数据不要加引号,会被sqlserver当字符串解决转换的

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据