急救:当变量值长度过长时就无法将变量值完全写入库,请问如何解决?

tw5210 2003-08-30 04:07:25
加精
我在做一个新闻上传介面,代码如下:
<?
if ($Submit!='')
{
$Text=nl2br($Text);
$con=@mssql_connect('Host',''sa,'') ;
@mssql_select_db('newstable') ;
$query="Insert into news (Head,Text) values ('$Head','$Text' )";
$result=@mssql_query($query,$con);
@mssql_close();
}
?>
<form name="form1" method="post" action="">
<table width="100%" border="0" cellspacing=0>
<tr>
<td align="center" valign="middle">新闻上传</td>
</tr>
<tr>
<td align="center" valign="middle"> 标题<input type="text" name="Head">
</td>
</tr>
<tr>
<td align="center" valign="middle"> 内容<textarea name="Text"></textarea>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<input type="submit" name="Submit" value="提交">
</td>
</tr>
</table>
</form>


当$Text长度过长时,就不能完全的将$Text的全部内容写到库里,只写入了前一部分!

库里的Text字段我定义的是"text"类型,那个插入语句"Insert into news (Head,Text) values ('$Head','$Text' )",我改用存储过程也试过,结果是一样,只能写入前一部分内容.

1、请大家帮个忙,帮我想想怎么解决?
2、你们通常是怎么样成功的将变量的值(值很长)写到库里?
3、用SQL语句读取长值和写入长值时,需要注意什么吗?
4、如何将图片存到SQL数据库里?

...全文
99 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DFlyingchen 2003-08-31
  • 打赏
  • 举报
回复
这是MySQL的Bug问题,前两天好像有人刚刚问过,需要改用longtext字段
tw5210 2003-08-31
  • 打赏
  • 举报
回复
呵呵,谢谢,好了!
将php.ini中

; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096

; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096

改成

Valid range 0 - 2147483647. Default = 4096.
mssql.textlimit = 999999

Valid range 0 - 2147483647. Default = 4096.
mssql.textsize = 999999

就可以了!
shuiaaa 2003-08-30
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1884/1884499.xml?temp=.6500513
shuiaaa 2003-08-30
  • 打赏
  • 举报
回复
php.ini中

; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096

; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
可以修改一下~
tw5210 2003-08-30
  • 打赏
  • 举报
回复
sports98:谢谢你回复!
1、图片的保存,我的做法和你一样,只是我不知道如果将图片直接存到库里。
2、我发现好像是从库里读出后不能全部传给变量,库里是全的,可是读取后就内容好像就被截去了后面的部分.
<?
// 假定库里只有一条记录,只有两个字段(head,text)
$con=@mssql_connect('Host',''sa,'') ;
@mssql_select_db('newstable') ;
$query=""SELECT * FROM News ";
$result=@mssql_query($query,$con);
$rows=@mssql_fetch_array($result);
@mssql_close();
$Head=$rows[0];
$Text=$rows[1];
?>
$Text的值并不等于库里text字段的内容,请问是怎么回事?如果解决?
sports98 2003-08-30
  • 打赏
  • 举报
回复
text字段已经满足我们现在的新闻系统,如果不行,请改用longtext字段(2^32-1字节)

·相对来说text(2^16-1)已经满足现在的新闻以及论坛方面的使用了.

·如果确信了改用longtext同样犯这毛病的话

建议:
卸载掉你的apache,与当前php重新配置apache+php (注意,请采用官方站点发放的稳定版!而不是测试版--因为我前段时间就是这样)

· 不论值长不长,只要内容不会影响到sql语句就可以正常添加

·将图片保存到SQL数据库内,我一直不推荐,我个人习惯是仅仅将图片文件名存放到数据库内,图片另外存放到一个目录内。如果你一定要存放进数据库的话,记得要将字段使用blob,或longblob类型,就是打开图象文件,类似打开其他数据文件一样,读出文件内容后存入数据库就可以了

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧