原因可能是:php对mssql的ntext类型的支撑问题;
今日弄了半响,分明能够链接到数据库,却不能读取的数据。Google,百度一番之后总算知道了,原来是php读取mssql的ntext字段反回值为空的,主张能够把ntext字段改成text。
假如是表里边没有ntext字段,能够用以下代码:
//ConnecttoMSSQL
$link=mssql_connect('KALLESPC\SQLEXPRESS','sa','phpfi');
if(!$link||!mssql_select_db('php',$link))
{
die('Unabletoconnectorselectdatabase!');
}
//Doasimplequery,selectpeversionof
//MSSQLandprintit.
$version=mssql_query('SELECT@@VERSION');
$row=mssql_fetch_array($version);
echo$row[0];
//Cleanup
mssql_free_result($version);
?>
假如表里边有ntext军字段,且欠好修正回text字段,能够如下:
1.修正php.ini
翻开php.ini
找到:
;百度推行问答营销"mssql.textlimit=4096
改为
mssql.textlimit=2147483647
找到:
;mssql.textsize=4096
改为
mssql.textsize=2147483647
2.能够运用修正字段,因为sqlserver中,ntext和nvarchar字段是用unicode编码存储内容的,因而php经过mssql扩展读取带ntext和nvarchar类型字段的时分会抱错。
假如title字段类型为nvarchar,content字段类型为ntext,那么下面的sql句子会报错:
错的:
selecttitle,contentfromarticle
正确的:
selectconvert(varchar(255),title)astitle,convert(text,content)ascontentfromarticle
3.假如你是虚拟主机,能够运用adodb组件来读取。假如你主机不支撑,现在笔者也没办法了。
include(adodb/adodb.inc.php);//包括adodb类库文件
$conn=NewADOConnection('odbc_mssql');//衔接SQLServer数据库
$conn->Connect(Driver={SQLServer}络口碑营销计划";Server=localhost;Database=mydb;,'username','password');
?>
;文章来自:软文ruanwen.tingclouds