我想在MySQL表中保存类似下面的URL
http://www.google.com/search?q=mysql+rel+scape&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#hl=en&safe=off&client=firefox-a&hs=uUt&rls=org.mozilla:en-US:official&sa=X&ei=t_jMTtvUE4jfsgbA_4HdDA&ved=0CBgQvwUoAQ&q=mysql+real+escape&spell=1&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=6f9f60a823dcbbc2&biw=1920&bih=901
但它只保存到
http://www.google.com/search?q=mysql rel scape
我尝试过UTF-8,text,varchar列类型,但它似乎不起作用。这就是我用于插入查询的内容:
'".addslashes($_POST['url'])."',
有人能指出我的问题在哪里吗?
答案 0 :(得分:1)
如果您想存储完整的网址,则必须使用urlencode
$url = urlencode('http://www.google.com/search?q=mysql+rel+scape&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#hl=en&safe=off&client=firefox-a&hs=uUt&rls=org.mozilla:en-US:official&sa=X&ei=t_jMTtvUE4jfsgbA_4HdDA&ved=0CBgQvwUoAQ&q=mysql+real+escape&spell=1&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=6f9f60a823dcbbc2&biw=1920&bih=901');
这会将&
存储为&
,可以存储在数据库中。
不要忘记查看安全性,不要在数据库中盲目接受$ _POST。像Polynomial说:Efficiently sanitize user entered text