哪个是使用PHP防止SQL注入的最佳方法

时间:2011-01-04 20:12:43

标签: php sql database

现在我的查询,如果我输入

,SP就会中断
  

ssds'“'sdsds

或只是

  

'“'

主要用于搜索功能。

这将是避免所有可能性的最佳方法。

例如:str_replace或更好的方法..写一些函数!

3 个答案:

答案 0 :(得分:4)

你没有提到哪个DBMS,所以我在这里假设MySQL。

最好的方法是使用PDO和/或准备好的语句。如果您使用的是过程API,那么下一个最好的方法是使用mysql_real_escape_string()

答案 1 :(得分:1)

在开始查看转义之前,在MySQL manualPHP manualthis article中查看预先准备好的陈述

逃避错误太容易了!

DW传递。

答案 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();