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当字符串解决转换的