澳门新浦京8455com在Windows2000+IIS下如何安装PHP

1、首先拷贝PHP到C:根目录下,文件夹命名为PHP。2、拷贝PHP文件夹下的php4ts.dll到C:WINNTSYSTEM32下。3、修改C:PHP文件夹下的PHP.INI-DIST文件,重命名为PHP.INI。4、打开PHP.INI,查找extension_dir,修改成extension_dir
= “c:/php/extensions/” 查找;extension=php_gd2.dll
查找;extension=php_iconv.dll 查找;extension=php_mssql.dll
分别去掉前面的“;”号。 查找 ; Valid range 0 – 2147483647. Default =

在网上找了很久,都是说 php 读 ntext
出错的,但没发现我的页面出错,就郁闷了。后来才查到是说 php
默认最大只能读 4K 的内容,原来是我的内容超过了 4K。修改方法如

nvarchar被截为255解决办法

  1. ; mssql.textlimit = 4096 ; Valid range 0 – 2147483647. Default =
  2. ; mssql.textsize = 4096 修改为:; Valid range 0 – 2147483647.
    Default = 40960. mssql.textlimit = 40960 ; Valid range 0 – 2147483647.
    Default = 40960. mssql.textsize =
    409605、拷贝PHP.INI文件到C:WINNT下.6、拷贝C:PHPDLLSICONV.DLL
    到C:WINNTSYSTEM32下。7、拷贝C:PHPEXTENSIONSPHP_MSSQL.DLL
    到C:WINNTSYSTEM32下。8、打开管理工具中的INTETNET信息服务,
    点击默认网站,打开属性。

下:

PHP 将 nvarchar 按照 MySQL 的 varchar 处理了吧!本文给出了解决方法:

1、把 php 升级到 php5 。

 代码如下

    还好,我的已经是 php5 了。

select cast(目标字段 as text)
from 表名

2、调整 php.ini 的参数,把 php 默认最大只能读 4K 改大一点。

假如你的 article 表中有个字段 summary 为 nvarchar,那么命令为:

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

 代码如下

    ; Valid range 0 – 2147483647.  Default = 4096.
    ;mssql.textsize = 20480

select cast(summary as text) from article

 

澳门新浦京8455com ,另一种情况text被截段解决办法

    把 mssql.textlimit  和 mssql.textsize
前面的“;“去了,再把默认值勤改大一点,比如 20480 (20K)

PHP 的配置文件 php.ini 中 MSSQL
部分:

3、重启 web 服务器。

[MSSQL]

本以为激动人心的时刻会来临,运行 php
页面,效果还是跟以前一样,字段数据没有完全读出来。后来又找到资料说 php
对 ntext 的支持不是很友好,要转为 text。于是又用

 代码如下

Convert(text, content) 转了,无效果不说,还差一点把我的 iis
弄死。在网上找了很久都无解。就在我打算放弃时,一个尝试的概念让我把数据库连接方式改了一下。我把

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

odbc_connect 改为 mssql_connect 居然就成功了。

; Valid range 0 – 2147483647.  Default = 4096.
mssql.textsize = 4096
请看这两个配置参数:

 

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

php 链接mssql问题 ntext不能读取

; Valid range 0 – 2147483647.  Default = 4096.
mssql.textsize = 4096
相信你现在已经知道了问题的关键所在,只需要将这两个数值改大即可,不过,同时也要考虑:

明明可以链接到数据库,却不能读取的数据。Google,百度一番之后终于知道了,原来是php读取mssql的
ntext字段反回值为空的,建议可以把ntext字段改成 text。

; Maximum size of POST data that PHP will accept.
post_max_size = 2M

如果是表里面没有ntext字段,可以用以下代码:

需要根据实际情况设置。

 代码如下

// Connect to MSSQL

$link = mssql_connect(‘KALLESPCSQLEXPRESS’, ‘sa’, ‘phpfi’);

if(!$link    !mssql_select_db(‘php’, $link))

{

die(‘Unable to connect or select database!’);

}

// Do a simple query, select the version of

// MSSQL and print it.

$version = mssql_query(‘SELECT @@VERSION’);

$row = mssql_fetch_array($version);

echo $row[0];

// Clean up

mssql_free_result($version);

?》

如果表里面有ntext军字段,且不好修改回text字段, 可以如下:

1.修改 php.ini

打开php.ini

找到:

;mssql.textlimit = 4096

改为

mssql.textlimit = 2147483647

找到:

;mssql.textsize = 4096

改为

mssql.textsize = 2147483647

2.可以使用修改字段,由于sql
server中,ntext和nvarchar字段是用unicode编码存储内容的,因此php通过mssql扩展读取带ntext和nvarchar类型字段的时候会抱错。

如果 title 字段类型为 nvarchar,content 字段类型为 ntext
,那么下面的sql语句会报错:

错的:

select title,content from article

正确的:

 代码如下

select convert(varchar(255),title) as title,
convert(text,content) as content from article

{这个方法不太实用,如果ntext内容 太长
转换之后会丢失数据,也就说过长的文章被截断了,而且在sql2008中
把ntext改成 nvarchar(max) 也不行}

3.如果你是虚拟主机,可以使用adodb
组件来读取。如果你主机不支持,目前笔者也没办法了。

 代码如下

include(“adodb/adodb.inc.php”); //包含adodb类库文件

$conn=NewADOConnection(‘odbc_mssql’); //连接SQL Server数据库

$conn-》Connect(“Driver={SQL
Server};Server=localhost;Database=mydb;”,‘username’,‘password’);

{使用adodb有一点要注意,使用adodbPHP连MSSQL的前提是驱动问题,5.2.10之前,PHP自带的驱动只支持MSSQL
7.0,如果要支持MSSQL 2000,需要将MSSQL
2000的ntwdblib.dll(2000.80.2039.0)复制到System32或者PHP目录下
5.2.11才支持MSSQL 2000,如果需要支持MSSQL
2005和2008,需要安装微软提供的驱动

所以如果是虚拟主机基本没办法

}

?>

 

读取mssql的ntext字段反回空置

在测试的时候明明可以链接到数据库,但是怎么也读取不到数据。经过查找资料发现原来是php读取mssql的
ntext字段反回值为空的,建议可以把ntext字段改成 text。

如果是表里面没有ntext字段,可以用以下代码:

 代码如下

// Connect to MSSQL
$link = mssql_connect(‘KALLESPCSQLEXPRESS’, ‘sa’, ‘phpfi’);

if(!$link    !mssql_select_db(‘php’, $link))
{
die(‘Unable to connect or select database!’);
}

// Do a simple query, select the version of
// MSSQL and print it.
$version = mssql_query(‘SELECT @@VERSION’);
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
?>
 

如果表里面有ntext军字段,且不好修改回text字段, 可以如下:

1.修改 php.ini

打开php.ini

找到:

;mssql.textlimit = 4096 

改为

mssql.textlimit = 2147483647

找到:

;mssql.textsize = 4096 

改为

mssql.textsize = 2147483647

2.可以使用修改字段,由于sql
server中,ntext和nvarchar字段是用unicode编码存储内容的,因此php通过mssql扩展读取带ntext和nvarchar类型字段的时候会抱错。

如果 title 字段类型为 nvarchar,content 字段类型为 ntext
,那么下面的sql语句会报错:

错的:

select title,content from article

正确的:

 代码如下

select convert(varchar(255),title) as title, convert(text,content) as
content from article

3.如果你是虚拟主机,可以使用adodb
组件来读取。如果你主机不支持,目前笔者也没办法了。

 代码如下

include(“adodb/adodb.inc.php”); //包含adodb类库文件
$conn=NewADOConnection(‘odbc_mssql’); //连接SQL Server数据库
$conn->Connect(“Driver={SQL
Server};Server=localhost;Database=mydb;”,’username’,’password’);
?>

 

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图