+-
PHP-SP和UDF的帮助?
我正在尝试通过 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的

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

关于存储过程的良好SO问题
调试:How do you debug MySQL stored procedures?
使用它们与PHP吗?:Should PHP developers use MySQL’s stored procedures?
视图或存储过程?: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的帮助? - 乐贴网