我有一个标准输入框,它将值直接提交到数据库,但是在字符串中包含分号会搞乱数据库值。
(示例1)文本输入值:
<input type="text" id="security_check" value="a:1:{i:0;s:10:"1234567890";}">
数据库值结果:
security_check: s:28:"a:1:{i:0;s:10:"1234567890";}";
您会注意到它在和“之前添加了 s:28:";之后
当我将值括在括号中时,它看起来很好,但随后 DB 值包含括号,这不起作用,因为它需要精确。
(示例2)文本输入值:
<input type="text" id="security_check" value="[a:1:{i:0;s:10:"1234567890";}]">
数据库值结果:
security_check: [a:1:{i:0;s:10:"1234567890";}]
有没有办法可以在提交之前格式化输入值,以便它出现在包含分号的数据库中,与最初编写的完全一样?
最佳答案
您是否使用准备好的语句或动态构建查询并执行它?如果您不使用准备好的语句,则可能会遇到此类问题,并且准备好的语句即使不能消除 SQL 注入(inject)攻击的可能性,也会减少这种可能性。
关于mysql - 提交字符串中包含分号的数据库值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54520842/