php mssql2000 text字段 被截断读取不完整的问题解决方法

php mssql2000 text字段 被截断读取不完整的问题解决方法

 

在抓取页面的时候保存源文件是很好的习惯,如果有需要可以照旧重新抓取,页面文件平均1W字节左右,于是使用了text字段

问题:text读取不完全

解决方法:$sql="SET   TEXTSIZE   2147483647";

测试代码:

 

<?php /*sql create CREATE TABLE [VOD_TMP_DATA] (  [id] [int] IDENTITY (1, 1) NOT NULL ,  [movie_list_tmp_name] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,  [movie_list_tmp_data] [text] COLLATE Chinese_PRC_CI_AS NULL ,  [movie_url_1_tmp_name] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,  [movie_url_1_tmp_data] [text] COLLATE Chinese_PRC_CI_AS NULL ,  [movie_url_2_tmp_name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,  [movie_url_2_tmp_data] [text] COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO */

 

$host="192.168.137.199,1433";$sa="sa";$pwd="sasa"; $dbh_4 = new PDO('mssql:host='.$host.';dbname=[MY_DB]',$sa,$pwd); $save_tmp_file="../tmp_movie_list.txt"; $save_tmp_file1="tmp_movie_list.txt";    $fp1=fopen($save_tmp_file,"r");    $buffer=fread($fp1,filesize($save_tmp_file));    $buffer_base64=base64_encode($buffer);    $buffer_base64_strlen= strlen($buffer_base64);    fclose($fp1); echo $buffer_base64."<br />"; echo $buffer_base64_strlen."<br />"; $sql="SET   TEXTSIZE   2147483647"; $dbh_4->query($sql)or die("err<br />"); echo "setTEXTSIZE_ok<br />"; $sql="INSERT INTO [MY_DB].[dbo].[VOD_TMP_DATA]( [movie_list_tmp_name], [movie_list_tmp_data]) VALUES('".$save_tmp_file1."','".$buffer_base64."') "; $dbh_4->query($sql)or die("err<br />"); echo "install_ok<br />";

$sql="SELECT [movie_list_tmp_data] FROM [MY_DB].[dbo].[VOD_TMP_DATA] WHERE [movie_list_tmp_name]='tmp_movie_list.txt';"; foreach($dbh_4->query($sql) as $row_4){ echo "<pre>";   echo print_r($row_4); echo "</pre>"; echo strlen($row_4[0])."<br />";

$sql='DELETE FROM [MY_DB].[dbo].[VOD_TMP_DATA]'; $dbh_4->query($sql)or die("err<br />"); echo "del_ok<br />"; } ?>

 


 

参考前辈们的文章:

http://blog.csdn.net/chris_mao/article/details/2023762

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值