Database @ 17 February 2004, “1 Comment”

公司需要把数据从 MsSQL 转到 MySQL,转过去的数据始终是不完整的。就像被人从中间故意截断的一样。

先是考虑是 MsSQL 的问题,用它自身的查询分析器查询却没问题。可是用PHP写的脚本来查就有问题。

通知了我们的网管,检查了半天也没有查出来什么问题。后来忽然间就想到了是不是PHP中的限制。打开PHP.ini,仔细找了一下,果然有类似于下面的一段:

[MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
mssql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
mssql.max_links = -1

; Minimum error severity to display.
mssql.min_error_severity = 10

; Minimum message severity to display.
mssql.min_message_severity = 10

; Compatability mode with old versions of PHP 3.0.
mssql.compatability_mode = Off

; Connect timeout
;mssql.connect_timeout = 5

; Query timeout
;mssql.timeout = 60


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

; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096

; Limits the number of records in each batch. 0 = all records in one batch.
;mssql.batchsize = 0

; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;mssql.datetimeconvert = On

; Use NT authentication when connecting to the server
mssql.secure_connection = Off

; Specify max number of processes. Default = 25
;mssql.max_procs = 25

罪魁祸首我已经在上边用红色标出来了。索性把它改为最大 2147483647,再次查询后,一切正常。

Tags:
PHP @ 05 February 2004, “11 Comments”

在线演示:http://www.imagevuex.com/sites/newx/

偶很喜欢这感觉,以后也可以做自己的在线相册了,HOHO~

官方站点:http://www.imagevuex.com/

Tags: , , ,
PHP @ 01 February 2004, “No Comments”

只是防止自己记性不好忘掉,也许以后会不断增加

1.DIRECTORY_SEPARATOR 这个常量从4.06版开始就存在,只是以前的手册没有说明。最新手册已经列出。
这是为了程序跨平台使用,定义目录分隔符,对于Windows系统为"", 而对于*nix系统为"/"。

2. 使用 "``" 可以用来执行一些命令行,并返回执行结果。同 shell_exec 函数的执行结果是相同的。

eg.

echo `ls -la`;

2004年4月14日21时42分
3.发现新函数:getopt 用来获取命令行的参数

Tags: ,
Database @ 16 January 2004, “4 Comments”

真是寒啊~
如果不是 Babyken 的提醒,这个错误我想我还会一直犯下去。

事情起因,帮 Babyken 做了一个 0day 查询的脚本,脚本很简单,就是简单的取用户输入的值做 LIKE 操作查询数据库。做好后经测试一直运行很好。可是今天 Babyken 告诉我说有个BUG,输入 "___" 或 ".__" 等类似的关键字时,会把数据库中的所有记录都取出来。

偶又试了以前写过的几个应用,寒,都有这个问题。。。

看起来是SQL本身对LIKE的处理问题。问了几个朋友也都没有注意过。后来在Mysql手册上找到答案:

Pattern matching using SQL simple regular expression comparison. Returns 1 (TRUE) or 0 (FALSE). With LIKE you can use the following two wildcard characters in the pattern:

Char Description
% Matches any number of characters, even zero characters
_ Matches exactly one character

当时感觉就是汗啊~~ 以前怎么自己就没有注意过呢?

解决办法是把用户的输入中的 _ 和 % 转义。
不知道是只是Mysql有这个问题,还是其它数据也有。希望熟悉其它数据库应用的朋友试一下。

相关Mysql说明页面:http://www.mysql.com/doc/en/String_comparison_functions.html


2004年1月16日22时25分补记:
xdanger探讨后发现,目前网上大部分的PHP+Mysql程序都存在此BUG,IPB和PHPBB也不例外,VBB中被过滤掉了。看起来这应该是一个值得引起重视的问题了。

Tags: ,
PHP @ 28 December 2003, “1 Comment”

vCard 格式做为系统之间联系人数据交换无疑是一个比较好的选择方案。
收集了一些这方面的资料,以后可能会用得着。

PHP @ 30 November 2003, “8 Comments”

看清楚了,是SmartTemplate,不是Smarty Template

在一页中建立一个以上的实例后,第一个以后的模板不会被正确解析。

解法办法

File: class.smarttemplate.php
找到:
unset ($_top);
换成:
unset ($GLOBALS[_top]);

搞定..

Tags: , ,
Life @ 28 November 2003, “No Comments”

HTML2JS: http://www.phpe.net/my/htmltojs
有这种软件,不过用了几次,感觉不爽,容易出错,干脆自己写了一个.

PHPMan: http://www.phpe.net/my/phpman
在线Man手册,From chedong.com

语音朗读引擎: http://www.phpe.net/my/sound/
迄今为至,我见过最棒的发音引擎,是调用别的网站的,只是一个接口而已

Tags: ,