Привет работникам IT.
Есть такая ситуация:Имеется сервер на linux (на нем крутится apache+php(пхп работает с mssql сервером через freetds)).Доступ к базе есть как на чтение так и на запись но вот в чем затык произошел,получение данных из базы происходит хорошо а вот insert или update не происходит так как freetds почемуто теряет параметры sql запроса.
вот лог попытки записи в базу:
dblib.c:3995:dbsqlok() marker is e3
util.c:119:Changing query state from PENDING to READING
token.c:526:processing result tokens. marker is e3(ENVCHANGE)
token.c:105:tds_process_default_tokens() marker is e3(ENVCHANGE)
read.c:179:tds_get_string: reading 10 from wire to give 5 to client.
read.c:179:tds_get_string: reading 10 from wire to give 5 to client.
token.c:526:processing result tokens. marker is ab(INFO)
token.c:105:tds_process_default_tokens() marker is ab(INFO)
token.c:2439:tds_process_msg() reading message from server
read.c:179:tds_get_string: reading 72 from wire to give 36 to client.
read.c:179:tds_get_string: reading 16 from wire to give 8 to client.
token.c:2501:tds_process_msg() calling client msg handler
token.c:2514:tds_process_msg() returning TDS_SUCCEED
token.c:526:processing result tokens. marker is e3(ENVCHANGE)
token.c:105:tds_process_default_tokens() marker is e3(ENVCHANGE)
token.c:526:processing result tokens. marker is fd(DONE)
token.c:2143:tds_process_end: more_results = 0
was_cancelled = 0
error = 0
done_count_valid = 0
token.c:2159:tds_process_end() state set to TDS_IDLE
util.c:119:Changing query state from READING to IDLE
util.c:119:Changing query state from IDLE to PENDING
dblib.c:4042:dbsqlok() end status was success
dblib.c:1161:dbresults()
token.c:514:tds_process_tokens() state is COMPLETED
dblib.c:907:dbcmd() bufsz = 10
dblib.c:4978:in dbfreebuf()
dblib.c:957:in dbsqlexec()
dblib.c:5867:in dbsqlsend()
util.c:119:Changing query state from IDLE to QUERYING
mem.c:519:tds_free_all_results()
write.c:134:tds_put_string converting 56 bytes of "UPDATE terminals SET trmnlAddress='' where trmnlName='' "
write.c:162:tds_put_string wrote 112 bytes
util.c:119:Changing query state from QUERYING to PENDING
net.c:673:Sending packet
0000 01 01 00 78 00 00 01 00-55 00 50 00 44 00 41 00 |...x.... U.P.D.A.|
0010 54 00 45 00 20 00 74 00-65 00 72 00 6d 00 69 00 |T.E. .t. e.r.m.i.|
0020 6e 00 61 00 6c 00 73 00-20 00 53 00 45 00 54 00 |n.a.l.s. .S.E.T.|
0030 20 00 74 00 72 00 6d 00-6e 00 6c 00 41 00 64 00 | .t.r.m. n.l.A.d.|
0040 64 00 72 00 65 00 73 00-73 00 3d 00 27 00 27 00 |d.r.e.s. s.=.'.'.|
0050 20 00 77 00 68 00 65 00-72 00 65 00 20 00 74 00 | .w.h.e. r.e. .t.|
0060 72 00 6d 00 6e 00 6c 00-4e 00 61 00 6d 00 65 00 |r.m.n.l. N.a.m.e.|
0070 3d 00 27 00 27 00 20 00- |=.'.'. .|
из чего видно что параметры trmnlAddress='' и trmnlName='' не передались freetds,хотя если добавить в php скрипт echo $trmnlName то до запроса то он прекрасно выдает значение
запрос для работоспособности должен иметь вид "UPDATE terminals SET trmnlAddress='".$trmnlAddress."' where trmnlName='".$trmnlName.'"
вопрос как это вылечить ?