【发布时间】:2015-11-26 23:05:11
【问题描述】:
今天我学习了如何在 MySQL 中创建存储过程。
DELIMETER //
CREATE PROCEDURE new(IN first INT)
BEGIN
SELECT * FROM table WHERE first_id= first;
END //
假设我创建了它并从 PHP 中调用它; CALL new('4');
或者我将我的 sql 命令直接写到 PHP 中
$mysqli->query("SELECT * FROM table WHERE first_id= $first");
我的 PHP 中有 20 个 sql 命令,我正在将它们作为存储过程复制到 phpmyadmin 中。他们没有减少。现在我从存储过程中获得了什么?就几封信?或者???感谢帮助。
【问题讨论】:
-
如果您问创建存储过程的目的是为了减少复制和粘贴代码的需要。与将任何语言中的重复代码移动到函数中的原因大致相同。假设您有一个 100 行的查询代码块,用于制作临时表、处理数据、循环等,这在您的程序中重复了 5 次。如果您在其中发现错误或让它运行得更好怎么办?您必须将它的所有 5 个实例更改为完全相同,使用存储过程您只需在一个地方执行此操作即可更新所有 5 个实例
-
在编程中执行此操作的真实示例是将您使用的每个 mysql PHP 函数包装在它自己的函数中并调用它。一开始您可能一直在使用
mysql_*功能,但现在它已贬值,您需要升级到mysqli_*或PDO。你认为你调用了多少次你的mysql查询函数?想要更新每一个并冒着丢失的风险?或者只编辑一次你的包装函数来影响它们 -
@BenN 不,我红了它。它没有回答我的问题。我的问题是我应该如何使用 SP。
-
@Memor-X 但是每个 sql 命令都不一样
标签: mysql sql-server stored-procedures