php - 在 PHP 中使用内联查询与存储过程

标签 php mysql codeigniter stored-procedures

我一直在我的应用程序模型中使用内联查询语句......到目前为止,许多人说存储过程将是一个很好的实践......我有以下问题

  • 如何在PHP Codeigniter中使用MySql存储过程?

  • 使用Mysql存储过程有什么优势?

最佳答案

存储过程是一种工具,就像其他任何东西(触发器、 View 等)一样,只能在适合该工具的地方使用。获取您拥有的每条内联 SQL 语句并将其转换为存储过程并不是正确的方向。

存储过程是使用非常粗糙的逻辑编写的,并使用游标循环遍历数据集,当您习惯了 PHP 处理逻辑的能力时,这将是一个障碍。

我参与过的唯一一个使用 SP 的项目是一个大型会计系统,其中数十万条记录必须经常更新,而代码的直接输入很少。我们基本上只是告诉它什么时候开始,不需要将值传递给 SP(尽管这样做是可能的)。然而,这只是我们在系统中使用的数千个内联查询中的一两个。我并不是说这是唯一使用它们的地方,但我已经构建了一些非常大的系统并且还没有“需要”在其他地方使用它们。

在我看来,最好花时间学习编写高速、低阻力的内联查询并使用 EXPLAIN 来验证您是否正确设置了索引。我认为除非您对存储过程有非常具体的需求,否则您会发现它们对于日常使用来说非常不友好。

关于php - 在 PHP 中使用内联查询与存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183197/

相关文章:

php - 在不刷新页面的情况下如何使用ajax/jQuery显示数据库中的值

php - 使用 JQuery 发布序列化表单数据和额外变量

php - 在自定义数组中设置一些 WooCommerce 订单和订单项目数据

python - Django、MySQL 和 Cloud9

mysql - 多条记录的外键

mysql - 记录太多,WAMP 挂起,因为将没有订单的客户导出到 CSV

php - 使用 CodeIgniter 将上传图片字段添加到注册表单

php - 带 www 和不带 www 的网站在 codeigniter 中对 baseurl 的作用不同

php - 使用 mysql_fetch_array() 生成的数组在使用后消失?

php - 在 iis express 上运行 php 站点