微信开发,获取用户信息的坑(用户的城市信息,city)
微信开发时,使用下面接口获取的信息:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
{ "openid":" OPENID", "nickname": NICKNAME, "sex":"1", "province":"PROVINCE", "city":"CITY", "country":"COUNTRY", "headimgurl":"https://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }
这个里面返回的数据中,city 会给一些特殊的城市添加单引号,比如「西安」会变成「xi'an」,在更新用户数据的时候如果外层使用的是单引号来拼接的 sql 语句,就会导致写入数据库失败。
解决办法是拼接 sql 语句时,外层使用双引号。