如何编写php-> mysql查询?

时间:2010-12-22 11:27:42

标签: php mysql sql

是否有任何好的教程都有编写查询的所有基本规则来将$ _Post vars从php存储到mysql?比如何时使用反引号和单键,以及如何使用get_magic_quotes_gpc()等函数安全地编写代码?

另一件事是,假设没有javascript验证(因为用户可以轻松将其关闭),我应该如何处理作为空$ _post变量发送的空表单字段并抛出错误?我是否必须对所有帖子变量使用isset()调用?

处理用户关闭表单上的javascript验证的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

转义和魔术引用不会阻止SQL注入; SQL注入不好;你应该使用准备好的陈述。

可以找到安全数据库处理的简介here

答案 1 :(得分:0)

使用mysql_real_escape_string() http://php.net/manual/de/function.mysql-real-escape-string.php来清理用户的输入。

应该使用PHP进行验证,可以使用JavaScript,但只是为了获得更好的用户体验,必须在服务器端进行安全检查!

答案 2 :(得分:0)

正如Tobias所建议的,您可以使用mysql_real_escape_string()来转义每个$ _POST变量。这并不能完全防止SQL注入,但它仍然是必需的。如果您想了解正确的引用,check this page out

当我以前编写过程样式的应用程序时,我会使用isset()来检查所有必需的字段,并且还会使用if语句很长时间来针对任何其他特定规则验证它们。您可以在验证完成之前初始化错误变量,如果任何$ _POST变量验证失败,则与该变量相关的消息将附加到错误变量。然后,您可以重定向回到表单并回显表单顶部的完整错误消息。

虽然代码非常混乱,但根据你有多少表单,可能会变得非常乏味。你在使用框架吗?由于表单验证是一项令人恼火但绝对必需的任务,因此大多数框架都内置了验证器。我个人使用Codeigniter,这使验证变得微不足道。您只需设置规则,它将处理用户友好错误消息的执行和生成。它还将转义变量,并具有可选的XSS过滤功能。您可以在Google上查看Codeigniters验证(抱歉,我不能在此帖子中发布2个链接,因为我的代表不到10个)