其实我只是试图插入字符串像这样的30/01/2012到一个表,其中该特定表列的类型为varchar。插入后,此值更改为0.008946322067594433。什么可能是这种行为的原因?请让我知道我在这里做错了什么。我在数据库/ SQL概念上很差。用斜线插入字符串到Mysql
-2
A
回答
3
我怀疑你的SQL看起来像:
在这种情况下INSERT INTO MYTABLE (X) VALUES (30/01/2012)
它不是把它当作一个串,而是一个表达来评价 - 这是被随后转换成字符串。如果是这种情况,这听起来像是在构建包含值的SQL字符串,例如,
String sql = "INSERT INTO ... VALUES (" + value + ")";
不这样做。使用PreparedStatement
并改为设置参数值。它不但可以避免这个问题,还可以避免SQL注入攻击,日期和时间转换问题等。
(说到这个,假设这个值是一个日期,你为什么要存储它一个varchar列?如果你可能,使你的列代表你想要存储的数据更自然...)
编辑:我刚刚下载并安装MySQL来测试这...并确实在一个表与单个列(Name
)这条SQL语句做错误的事情(在MySQL工作台):
INSERT INTO `test`.`sandbox` (`Name`) VALUES (30/01/2012);
...但是这做正确的事:
INSERT INTO `test`.`sandbox` (`Name`) VALUES ('30/01/2012');
但你还是应该使用预准备语句的参数,当然。
+0
谢谢。我将在此处使用准备好的声明。 – Allwyn 2012-03-16 04:21:47
相关问题
- 1. 使用URL字符串插入到MySQL
- 2. 将json字符串插入到mysql中
- 3. 如何在Mysql中的字符串末尾插入反斜杠?
- 4. 如何插入反斜线(\)来与它的特殊字符的字符串保存到MySQL数据库
- 5. 将字符插入到字符串中
- 6. 插入字符到SQL字符串
- 7. Java字符串操作,更改多个斜线一个斜线
- 8. 分割字符串,并插入断线
- 9. mysql只插入部分字符串值
- 10. 将Java字符串插入MySQL
- 11. Mysql的插入字符串值
- 12. MySQL插入字符串错误 - UTF-8?
- 13. 特殊的outfile mysql插入字符串?
- 14. Mysql - 插入带空格的字符串
- 15. 用字符串中的正斜杠代替反斜线
- 16. 插入数据包括斜杠到mysql
- 17. C#替换反斜线JSON字符串
- 18. 斜线的URL字符串(C#)
- 19. 在反斜线JSON字符串
- 20. 分割字符串与斜线
- 21. 从字符串修剪斜线C#
- 22. Yaml字符串中的反斜线
- 23. 查找字符串中的斜线
- 24. 添加反斜线字符串
- 25. 插入到表使用字符串中的MySql
- 26. 用java将字符串插入到datetime mysql列中。
- 27. 使用UTF-8时无法将字符串插入到MySQL中
- 28. 插入Python字符串或字典到MySQL
- 29. 字符串插入
- 30. 将字符串插入字符串C#
varchar列不应该在数据中看到任何更改。显示一些代码。 – 2012-03-15 18:43:23
我怀疑这个变化是在**插入之前发生的**您是否在附上那个“?s?请告诉我们代码 – pcalcao 2012-03-15 18:44:56
告诉我们您的代码伙计.. – 2012-03-15 18:47:04