Помощь с SP и UDF?

Я пытаюсь изучить и использовать SP (хранимую процедуру) и UDF (пользовательская функция) с MySQL и PHP. В чем разница между SP и UDF и какова цель?

Как простой фрагмент кода выглядит в PHP и SQL с помощью SP, который обновляет, пишет или извлекает что-то из таблицы в базе данных MySQL? Необходимо понять и понять смысл использования SP и UDF.

Предоставьте помощь! Благодаря!

Related of "Помощь с SP и UDF?"

Хранимые процедуры

Хранимая процедура – это код 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 более сложны, я бы использовал их только в том случае, если вы обнаружите, что хранимая функция / хранимая процедура больше не работают для вас (достаточно медленно или недостаточно)

связи
Для получения дополнительной информации о хранимых процедурах см.:
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

Хорошие вопросы о хранимых процедурах
Отладка : как вы отлаживаете хранимые процедуры MySQL?
использовать их с php ?: Должны ли разработчики PHP использовать хранимые процедуры MySQL?
просмотров или sproc: MySQL: Views vs Stored Procedures
использование sproc для обновления: процедура mysql для обновления числовой ссылки в предыдущих строках при обновлении
повышение и обработка erros в sproc: как повысить ошибку в функции MySQL

Как вызвать хранимую процедуру с 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' "; 

Удачи.