+ -
当前位置:首页 → 问答吧 → php 读取 mssql 里的空值 如何判断?

php 读取 mssql 里的空值 如何判断?

时间:2011-10-19

来源:互联网

环境为: linux redhat 5.4 ,php+freetds+mssql 2005 server



//*****************************************************

$value=iconv("GB2312","UTF-8",$row[iconv("UTF-8","GB2312",$field)]);
echo "<td>"; // 如果$field 字段在 mssql 2005 为null 值时 ,下面的句话不执行
echo $value;// 如果$field 字段在 mssql 2005 为null 值时 ,下面的句话不执行

echo "</td>"// 如果$field 字段在 mssql 2005 为null 值时 ,下面的句话不执行




//****************************
echo "<br>";
//echo "waredatememo:".$test["waredatememo"] ;
echo "<br>";
echo iconv("GB2312","UTF-8",$row[iconv("UTF-8","GB2312",$field)]) or die("MSG results:".mssql_get_last_message());

其中$field 字段时 mssql 2005 中是 null 值。

用上面的语句测试时,web 页只显示:"MSG results:" 后面没有任何消息!

求解!....

作者: lvtao_cn   发布时间: 2011-10-19

不太明白你在说什么?

如果字段允许为空,则应在 sql 指令中用 isnull 判断
空值在查询后已转换成长度为 0 的串。除非你使用 PDO ,并显式的声明了对 NULL 的处理方式

utf-8 字符集与 gb2312 字符集不对等,在两者之间进行转换时,必然会出现内容缺失的情况

utf-8 与 cp936 对等,使用简单的移位运算即可实现转换
cp936 与 gbk 对等,使用对照表进行转换

所以 utf-8 与 gbk 对等,gb2312 只是 gbk 的一个子集

作者: xuzuning   发布时间: 2011-10-19