php如何读写MS SQL SERVER中varchar类型的字段的数据???急!!! php如何读写MS SQL SERVER中varchar类型的字段的数据???急!!!请大师指点一二!多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计你是遇到乱码的困扰了。说说你的数据库和php 和html 都用的什么编码 源代码:<?php// Connect to MSSQLdate_default_timezone_set(PRC); $link = mssql_connect('192.168.100.250', 'sa', 'y');if (!$link || !mssql_select_db('demo', $link)) { die('Unable to connect or select database!');}$version = mssql_query('SELECT @@VERSION');$row = mssql_fetch_array($version);echo $row[0] ."<br><br>";$rs = mssql_query("select top 10 item_no, convert(varchar,description),qty_on_hand from gbitem where left(item_no,2)='FG'",$link); $XH=1; while($row=mssql_fetch_array($rs)) { echo "$XH $row[0] $row[1] $row[2]" ."<br>"; $XH ++; }mssql_free_result($version); mssql_free_result($rs); mssql_close($link);?> 显示结果:Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4) 1 FG0601001101X **??? 0.00002 FG0601001201 ? 0.00003 FG0601001201X ? 7.00004 FG0601001301 ????? 0.00005 FG0601001301X **????? 2.00006 FG0601101701 A?????? 0.00007 FG0601101701X ?? 0.00008 FG0602001101 ??? 0.00009 FG0602001101X **??? 0.000010 FG0602001301 ????? 0.0000其中显示:???或**????部份就是汉字或**汉字 你的是编码的问题,编码要统一一下,gbk mssql_query('SET_NAMES GBK');试试 这个肯定不行了,MS SQL没这种写法的,MYSQL就行。 首先要确定你的mssql的字符编码,然后把php和html的编码与数据库的统一就可以了。如果网页的编码与mssql的不同,又不想改掉网页的编码,那么在入库的时候把中文字符先转成mssql的编码再入库,读取的时候转码显示就可以了。 如果觉得这样增加的服务器的负担,那么就用JavaScript的escape和unescape方法放在客户端执行。 程序页面和MSSQL编码不一致引起的。 php文件编码html输出编码(head标签中的meta)php输出编码(header('Content-Type: xxx; charset=xxx'))都和mssql编码一直基本上就不会乱码 WEB应用系统不被搜索引擎 有个问题一直没有搞明白,今天一定要搞明白 php出错后,继续执行下去,就像asp的 on error resume一样的功能有没有? 一个正则问题 救救我吧!头都晕了... 满分求答 社区的树形菜单怎么实现的?(100分求解) php4+2000srv+iis 大家也讨论一下PHP的安全问题! PHP分析POST重复值 问题 thinkphp中下载文件问题
说说你的数据库和php 和html 都用的什么编码
<?php
// Connect to MSSQL
date_default_timezone_set(PRC);
$link = mssql_connect('192.168.100.250', 'sa', 'y');if (!$link || !mssql_select_db('demo', $link)) {
die('Unable to connect or select database!');
}$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);echo $row[0] ."<br><br>";$rs = mssql_query("select top 10 item_no, convert(varchar,description),qty_on_hand from gbitem where left(item_no,2)='FG'",$link); $XH=1;
while($row=mssql_fetch_array($rs))
{
echo "$XH $row[0] $row[1] $row[2]" ."<br>";
$XH ++;
}mssql_free_result($version); mssql_free_result($rs); mssql_close($link);?> 显示结果:
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4) 1 FG0601001101X **??? 0.0000
2 FG0601001201 ? 0.0000
3 FG0601001201X ? 7.0000
4 FG0601001301 ????? 0.0000
5 FG0601001301X **????? 2.0000
6 FG0601101701 A?????? 0.0000
7 FG0601101701X ?? 0.0000
8 FG0602001101 ??? 0.0000
9 FG0602001101X **??? 0.0000
10 FG0602001301 ????? 0.0000其中显示:
???或**????部份就是汉字或**汉字
试试
这个肯定不行了,MS SQL没这种写法的,MYSQL就行。
然后把php和html的编码与数据库的统一就可以了。如果网页的编码与mssql的不同,又不想改掉网页的编码,那么在入库的时候把中文字符先转成mssql的编码再入库,读取的时候转码显示就可以了。 如果觉得这样增加的服务器的负担,那么就用JavaScript的escape和unescape方法放在客户端执行。