我正在尝试通过MySQL和PHP学习和使用SP(存储过程)和UDF(用户定义函数)。SP和UDF有什么区别,目的是什么?
带有SP的PHP和SQL在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是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更为复杂,因此只有在您发现存储函数/存储过程不再适合您时(慢/不够强大等),我才会使用它们。
如何从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' ";
祝你好运。