Ben mySQL sorguları kullanmak için kendi mySQL fonksiyonları yazabilir miyim?

5 Cevap php

Ben örneğin mySQL sorguları yaparken ben arayabilirsiniz özel bir işlev yazabilirsiniz.

Benim veritabanı tablo alanları 'filetype' ve 'dosya adı' vardır. Ben sonucu dönmeden önce dosya üzerinde bir işlevi gerçekleştirmek istiyorum.

$query = "SELECT filetype, MY_FUNCTION(filename) FROM table..";
$result = mysql_query($query);
return $result

SO $ sonuç, şimdi MY_FUNCTION tarafından oluşturulan yeni değerler vardır. Özgün veritabanı veri değişmemiş olacaktır.

Tamam - Kullanıcı Tanımlı Fonksiyonlar gitmek için yoludur gibi yani nasıl benim kendi kullanıcı tanımlı fonksiyon yazabilirim ... görünüyor? Bunu yazmak için PHP kullanabilir miyim? Nerede tasarruf işlevi yoksa veya benim globallerinin dosyasına dahil mi?

Teşekkürler!

5 Cevap

DELIMITER $$

CREATE FUNCTION MY_FUNCTION (FILENAME VARCHAR(255)) RETURNS VARCHAR(255)
DETERMINISTIC
NO SQL
BEGIN
       RETURN SUBSTR(filename, 1, 20);
END
$$


DELIMITER ;

Işlevi oluşturmak için, sadece favori sorgu aracı (yukarıda belirtildiği üzere sililar) kodunu yapıştırın gibi mysql.exe, MySQL Query Browser, phpmysqladmin vb

Sen UDF 's C içinde ve hem de yazabilir SQL. İkinci durumda, bir derleyici olması gerekmez.

Ben örnek olarak verilmiştir fonksiyonu bir SQL UDF olduğunu. Sadece dosya adı ilk 20 karakter verir.

Bir SQL UDF herhangi bir MySQL işlevlerini kullanabilirsiniz.

Evet, adı User Defined Functions (UDF).

Şey sizin ihtiyaçlarınıza uygun olup olmadığını kontrol edebilirsiniz böylece Ve burada bir good repository zaten pre-build fonksiyonları vardır.

Ben doğru anlamak, bir saklı yordam oluşturmak istiyorsunuz? http://dev.mysql.com/tech-resources/articles/mysql-storedprocedures.html

Sen UDF yerli kod olarak yüklenir gibi, bir kullanıcı tanımlı PHP fonksiyon (ya da en azından değil komut arayacak bir sarıcı yazmadan) yazamıyor.