今天快被這個問題搞死掉了
公司需要把數據從 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,再次查詢後,一切正常。