如何使用PHP从MSSQL读取图像字段 [英] How to read image field from MSSQL with PHP
问题描述
我正在创建一个网站,需要同步从脱机MSSQL服务器读取的在线MySQL数据库。所有通信和读取MSSQL的所有字段都正常工作,除了图像字段。我已经使用PHP和Mysql一段时间了,并且知道如何在MySQL数据库中插入/检索图像(使用BLOBS)。我首先尝试使用MSSQL相同的概念,但我无法让它工作。有没有人有任何使用PHP从MSSQL插入/检索图像的经验?它已经破坏了我的球几天了..以下是我尝试过但没有用的代码组合..
I am creating a web site that needs to synchronise an online MySQL database reading from the offline MSSQL server. All communication and reading all fields from MSSQL is working OK except that image field. I have been working with PHP and Mysql for some time and know how to insert/retrieve images to/from a MySQL database(using BLOBS). I have tried the same concept first with MSSQL and I just can't get it to work. Does anyone have any experience working with inserting/retrieving images from MSSQL using php? It has been busting my balls for a few days already.. Here are the code combinations that I have tried and didn't work..
<
?php
$conn = mssql_connect("COMP1");
mssql_select_db("datalab",$conn);
// storing a file
$datastring = file_get_contents("banner.jpg");
$data = unpack("H*hex", $datastring);
mssql_query("insert into milos (id,naziv, slika)
values ('2','img2.jpg', 0x".$data['hex'].")");
// retrieving
$result = mssql_query("select slika from milos where naziv = 'img2.jpg'");
$row = mssql_fetch_array($result);
header("Content-type: image/jpeg;");
$data = $row['slika'];
echo $data;
//echo $slika;
?>
<
?php
$conn = mssql_connect("COMP1");
mssql_select_db("datalab",$conn);
$result = mssql_query("select slika from milos where naziv = 'img.jpg'");
$row = mssql_fetch_array($result);
header("Content-type: image/jpeg;");
$data = $row['slika'];
$datas = substr($data,78);
echo $datas;
?>
<
?php
$conn = mssql_connect("COMP1");
mssql_select_db("datalab",$conn);
$result = mssql_query("select slika from milos where naziv = 'img.jpg'");
$row = mssql_fetch_array($result);
header("Content-type: image/bmp;");
$data = $row['slika'];
$data_pos = strpos($data,"JFIF");
$datas = substr($data,$data_pos - 6);
echo $datas;
?>
任何人都可以帮助我吗?
Can any one help me?
在此先感谢..
Nimmy ....
Thanks in advance.. Nimmy....
推荐答案
搜索 php.ini 并找到行
;mssql.textlimit = 4096
和
;mssql.textsize = 4096
将值替换为 2147483647
,如下所示:
Replace the value to 2147483647
like this:
mssql.textlimit = 2147483647
mssql.textsize = 2147483647
此外,您可以在建立连接后立即执行以下操作。
Also you can do the following just after making a connection.
mssql_query("SET TEXTSIZE 2147483647");
这篇关于如何使用PHP从MSSQL读取图像字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!