分享、学习、提高
2009/04/14 20:22
文章作者:Enjoy 转载请注明原文链接。
文章的tags列表页面的Rewrite是这样的,通过IIS的ISAPI_Rewrite来实现的。
RewriteRule /tags/([^/]*)/(\d+)/$ /article/tag.asp\?q=$1&page=$2 [L]
RewriteRule /tags/([^/]*)$ /article/tag.asp\?q=$1

如:http://www.itlearner.com/tags/%D3%D1%C7%E9%C1%B4%BD%D3

英文tag没问题,但中文的大部分有问题。比如关键词是:友情链接,但实际获取到的确是:友敲。
这次服务器切换成了apache,就用php重写了这个页面。

php连MSSQL数据库测试出现:
引用
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: localhost in F:\itlearner\www\hx\config.php on line 3

原代码是:
$msconnect = mssql_connect('localhost','$user','$pass');
改为:
$msconnect = mssql_connect('$ip','$user','$pass');
成功!

又碰到:SELECT content FROM article WHERE id = 1
引用
Warning: mssql_query() [function.mssql-query]: message: 不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用 Unicode 排序规则的 Unicode 数据发送到客户端。 (severity 16) in F:\itlearner\www\hx\tags.php on line 11


参考了http://www.itlearner.com/article/2009/4362.shtml解决,原来字段是ntext或nvarchar时会有此问题。查了一下,我的content字段是ntext类型的,把语句改为:

SELECT convert(text,content) FROM article WHERE id = 1
成功!

接着是分页问题,
在MSSQL中分页还是有些麻烦,如每页10个,查询第二页时,需要用top 20选出来,然后再move 10。
在php中查了下,发现是用mssql_data_seek。
引用
$startno = 10;
$sql = "select top 20 ArticleID from Article {$condition}";
$tmp = mssql_query($sql);
mssql_data_seek($tmp,$startno);


写完,测试Rewrite没有任何问题。

两个页面放了时间统计,发现原asp只需要0.1s不到,而php来实现则需要1s多。可见,在windows平台下,用MSSQL时,便用ASP的效率大大高于php。
发表评论
表情
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]