现在我的查询,如果我输入
,SP就会中断ssds'“'sdsds
或只是
'“'
主要用于搜索功能。
这将是避免所有可能性的最佳方法。
例如:str_replace或更好的方法..写一些函数!
答案 0 :(得分:4)
你没有提到哪个DBMS,所以我在这里假设MySQL。
最好的方法是使用PDO和/或准备好的语句。如果您使用的是过程API,那么下一个最好的方法是使用mysql_real_escape_string()。
答案 1 :(得分:1)
答案 2 :(得分:1)
使用预准备语句将逻辑(SQL)和内容分开(无论您的输入是什么)。您不必担心所有这些转义事件,您只需告诉您的查询您输入的是字符串,而不是SQL代码。 猜猜mysql:
http://www.php.net/manual/en/mysqli-stmt.prepare.php
快速示例:
$stmt->prepare("INSERT INTO table VALUES (?)");
$stmt->bind_param("s", "your'''\\\input goes here");
$stmt->execute();