gpt4 book ai didi

php - 帮助处理 SP 和 UDF?

转载 作者:可可西里 更新时间:2023-11-01 08:07:56 27 4
gpt4 key购买 nike

我正在尝试通过 MySQL 和 PHP 学习和使用 SP(存储过程)和 UDF(用户定义函数)。 SP和UDF有什么区别,目的是什么?

一段简单的代码在 PHP 和 SQL 中看起来像一个 SP,它正在更新、写入或从 MySQL 数据库中的表中获取某些内容?需要理解和看到使用 SP 和 UDF 的意义。

谢谢帮助!谢谢!

最佳答案

存储过程

存储过程是用 MySQL 编写并由 MySQL 执行的 MySQL 代码。

存储函数示例

CREATE FUNCTION AreWeThereYet(Location integer) RETURNS boolean
BEGIN
Return 0;
END

存储过程示例

CREATE PROCEDURE InsertRow(A integer)
BEGIN
INSERT INTO table1 VALUES(A);
END

UDF 的

UDF 是 C(++) 或编译为 .so (linux) 或 .dll (windows) 的类似代码

您可以使用如下命令将其插入 MySQL:

CREATE FUNCTION metaphon RETURNS STRING SONAME 'udf_example.so'; //linux
CREATE FUNCTION metaphon RETURNS STRING SONAME 'udf_example.dll'; //windows

回顾
UDF 很复杂,存储过程很简单。
你可以在 SO 中找到很多关于存储过程的例子
因为 UDF 更复杂,所以我只会在您发现存储函数/存储过程不再适合您时使用它们(速度变慢/功能不够强大等)

链接
有关存储过程的更多信息,请参阅:
http://dev.mysql.com/doc/refman/5.1/en/stored-routines.html

有关 UDF 的更多信息,请参阅:
http://dev.mysql.com/doc/refman/5.1/en/udf-compiling.html

关于存储过程的好问题
调试:How do you debug MySQL stored procedures?
将它们与 php 一起使用?:Should PHP developers use MySQL's stored procedures?
View 或存储过程?:MySQL: Views vs Stored Procedures
使用 sproc 进行更新:mysql procedure to update numeric reference in previous rows when one is updated
在存储过程中引发和处理错误:How to raise an error within a MySQL function

如何从 php 调用存储过程
这真的只是另一个查询

-- normal select
$query = "SELECT * FROM table1";
-- call to stored proc
$query = "CALL InsertARow('1')";
-- use a stored function
$query = "SELECT AreWeThereYet('10')";
-- or
$query = "SELECT * FROM table1 WHERE AreWeThereYet(field1) = '1' ";

祝你好运。

关于php - 帮助处理 SP 和 UDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com