如果我使用单一选择构建一个大型应用程序,插入,删除将会中断我的代码。
我应该使用存储过程吗?
注意:使用PHP和mysql
答案 0 :(得分:1)
如果我使用单一选择构建一个大型应用程序,插入,删除将会中断我的代码。
只要你正确地编写了你的查询意味着考虑优化,避免sql注入。
我应该使用存储过程吗?
当您希望/需要在多个页面上运行相同查询时,存储过程非常理想。将它们想象为您在应用程序周围重复使用的功能。但是,存储过程似乎也有性能提升。
答案 1 :(得分:1)
请记住,存储过程使得扩展应用程序(分布式数据库)和更改数据库引擎变得更加困难。
答案 2 :(得分:1)
答案 3 :(得分:1)
正如其他评论所说,如果您确定不会更改底层DBMS,则应使用存储过程。几乎每个DBMS都有自己的PL语法,因此使用存储过程将使您的应用程序无法移植到其他DBMS。
但是,正如已经说过的那样,存储过程将提升您的性能,因为在大多数DBMS上,它们将由DBMS引擎进行编译和优化。
对于SQL注入保护,存储过程不是唯一的解决方案:大多数高级别的数据库层(例如PHP中的PDO,Java中的JDBC或DB2 python接口)将能够执行预准备语句。准备好的语句是您要重用的查询,db管理层将使用DBMS功能进行编译,并且在调用时将使用不能注入代码的参数,因为已准备好的查询已经编译,使得SQL注入几乎不可能。这取决于您使用的DBMS和高级数据库功能。