当通过php运行T-SQL函数时,我注意到一种奇怪的行为,并且认为有人可以帮我解决问题。
我有一个函数,从通过php脚本运行的数据库中获取客户端x的前10个业务,它返回3个简单列(业务名称,sum和nro),以便在站点上显示php。现在这里变得奇怪了。
客户A在退货中有此业务:KeskinäinenTyöeläkevakuutusyhtiöElo。当函数通过PHP运行时,它会得到null作为整个结果(所以我没有得到任何数据),如果这个值在返回的值中。在SQL服务器上运行时,一切正常。
和客户B在退货中有这项业务:KeskinäinenEläkevakuutusyhtiöIlmarinen。无论php和服务器上是否包含此值,客户端B都会获取所有数据。
现在我的第一个想法是好的,其余的值有问题,但没有:
客户A值KeskinäinenTyöeläkevakuutusyhtiöElo,-xxxxx.xx,2
客户B有KeskinäinenEläkevakuutusyhtiöIlmarinen,-xxxxx.xx,1
两者都具有可接受的值,最后和最后一个值是其他业务可能更高的金额值,并且不会出现任何问题。
现在我尝试了一个where子句,发现它们在php端确实存在元差异。当我在php代码上添加where liikesuhde not like 'Keskinä%'
时,它会“过滤”KeskinäinenTyöeläkevakuutusyhtiöElo,但会离开KeskinäinenEläkevakuutusyhtiöIlmarinen;在SQL服务器端,两者的行为是相同的(两者都被过滤掉)这表明ä具有元差异。
where liikesuhde not like 'Keskin%
'过滤掉两者。
我已经检查了名称所在的表,但它们看起来相同(两者都是ä和ö),并且在sql函数或php端都没有处理名称,所以我猜php看到了关于ä的不同内容,但我不知道如何找出它们。
PS。我已经尝试在PHP上调用函数时更改sum和nro值(所有值为1)是相同的,但只要客户端的名称出现,我就不会得到任何结果。