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);
$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。

setcookie的奇怪问题
关于rsync同步(备份)的一些记录

