一个tp3.2奇怪的数据保存不完整的问题的解决

 

 

保存数据130多行,只保存了60多行进去,

 

仔细排查,发现是有个图片路径的字段的问题, 有些图片路径是带90端口的,例如 http://www.x.com:90/a1.jpg,就保存不进去,

 

看日志,发现sql变成这样了 

insert into t(...,img_url,...) values (...,  'http://www.x.com:'AA8472'0/a1.jpg' , ...)

这都不是一个正确的字符串了,90到哪儿去了? 

原来是Driver.class.php里面,绑定变量替换的时候,:90里面刚好碰到了一个:9,它就把:9给替换为'AA8472'了,AA8472是第9个字段的值,

因为绑定变量未解析之前是这样的嘛:

insert into t(...,img_url,...) values  :0, :1, :2 ...
$this->bind =
[
    ':0'=>'xxxx',
    ':1'=>'29484',
    ':2'=>'skdfjKSdfjsdfk',
    ...
    ':9'=>'AA8472',
    ...
]

知道问题所在就好办了,源程序里面绑定变量是:开头,给他搞复杂一点,比如:__param__,就可以了,

$this->bind =
[
    ':__param__0'=>'xxxx',
    ':__param__1'=>'29484',
    ':__param__2'=>'skdfjKSdfjsdfk',
    ...
    ':__param__9'=>'AA8472',
    ...
]

但是一定要冒号开头,否则不会替换的

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值