我有一个标准的输入框,它直接将值提交给数据库,但是在字符串中包含分号会破坏数据库值。
(示例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";}]
有没有一种方法可以在提交之前格式化输入值,以使它出现在包含分号的数据库中,与最初编写的完全一样?
答案 0 :(得分:0)
我认为您已将序列化数据保存为数据库中序列化的数据字符串或序列化添加在数据库字段中字符串前面的数组计数
答案 1 :(得分:0)
您是使用准备好的语句还是动态构建查询并执行该查询?如果您不使用预处理语句,则可能会出现这种类型的问题;如果不能消除SQL注入攻击的可能性,那么预处理语句也会减少。