PHP参数化查询使用mysql_query函数和安全性?

时间:2012-12-08 01:35:27

标签: php mysql

声明

请原谅我的无知,我已经写了超过12年的C#并且我对.NET框架和OO编程很满意,而且我在企业应用程序方面有很好的背景,但这是我的第一回合用PHP。

问题

好吧,所以我想弄清楚如何使用prepare函数发出mysql_query,我无法将两个和两个放在一起。现在我这样连接:

mysql_connect('xxx.x.x.x:xxxx', 'x', 'x');
mysql_select_db('x');

这是成功的。

现在,我想插入一些数据,因此我正在查看mysql_query函数,而无法弄清楚如何发送参数化查询以防止SQL注入。我的代码目前看起来像这样:

mysql_query("INSERT INTO users (email, password, ...)
    VALUES (:email, :password, :...)

但是如何将值数组传递给它?

附加问题

如果我在通过用户输入收到的每个值上使用mysql_real_escape_string,我是否需要担心发出参数化查询?

2 个答案:

答案 0 :(得分:3)

最好使用PDO(或mysqli)来执行此操作。但是,您可以在bobby-tables website上找到使用PDO,mysqli,adodb等的示例。我建议您阅读bindValue()的PDO doco,它可以满足您的需求。

答案 1 :(得分:2)

正如我的评论所述,mysql_函数已被弃用。您应该使用mysqli_或PDO,它允许参数绑定以防止SQL注入。