亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Mysql字符串被當成十六進制怎么處理?

Mysql字符串被當成十六進制怎么處理?

紫衣仙女 2019-02-14 21:11:17
公司項目用的原生php 封裝的mysql php類, 上線已很久, 今天排查一個錯誤的時候驚現一個奇怪的現象, 讓人萬分驚恐:查詢 sql: select count(1) as total from tabname where 1=1 and connuid='9E74674'此sql語句交由mysql query(sql)查詢。 connuid varchar(40)報錯: Illegal double '9E74674' value found during parsing。疑問:sql語句已經對查詢字符串加了引號處理,為啥還會被自動轉換成hex進制了呢?該如何處理呢?
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

測試了一下,sql 語句中 9E74674 外不帶引號,才會報這個解析錯誤。

64位系統 mysql double 最大值好像是1.7e308

不加引號,mysql 把這個 9E74674 當成科學計數法了,想解析成 double,結果超出范圍了。

我分析是這么回事~


查看完整回答
反對 回復 2019-03-13
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

測試沒發現會轉成小數,

show variables like 'general_log%';

set global general_log = 'ON';

觀察變量general_log_file表示的文件, 看實際執行的sql代碼.


查看完整回答
反對 回復 2019-03-13
  • 2 回答
  • 0 關注
  • 1815 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號