こんにちは、open.uwec.edu の新しい Web 開発者です。最近、Web サーバーを切り替える必要があり、いくつかの課題に遭遇しました。私たちの古い MySQL サーバーは、preg_replace と呼ばれる lib_mysqludf_preg ライブラリーの関数を使用して、正規表現の検索とマッチングを行いました。lib_mysqludf_preg.dll および libpcre.dll と呼ばれる「MySQL Server 5.1/lib/plugin」フォルダーに、いくつかの .dll が既にコンパイルされていました。
これらのdllを「MySQL Server 5.6/lib/plugin」の新しいサーバーにコピーして、次のようにすると...
CREATE Function preg_replace RETURNS STRING SONAME 'lib_mysqludf_preg.dll';
MySQL 193 フォーマット エラーが発生します...
このライブラリの github リポジトリのガイドをhttps://github.com/mysqludf/lib_mysqludf_preg/blob/testing/doc/INSTALL.windowsで見ましたが、リンクは pcre のような適切なファイルに移動しません。 dll、そしてそれは私には意味がありません。この preg ライブラリを最初からコンパイルする必要がありますか? それを使用する私の関数は次のようになります。
CREATE DEFINER=`root`@`localhost` FUNCTION `slug`(dirty_string varchar(255)) RETURNS varchar(255) CHARSET latin1
DETERMINISTIC
BEGIN
Declare temp_string VarChar(255);
Set temp_string = replace(dirty_string, '&', ' and ');
Set temp_string = replace(temp_string, '''', '');
Set temp_string = preg_replace('/[^a-z0-9-]+/i', '-', temp_string);
Set temp_string = preg_replace('/^-+|-+$/', '', temp_string);
Return LOWER(temp_string);
END
私たちのサイトは、php codeigniter フレームワークを利用しています。MySQL での UDFS の経験はほとんどないので、十分な情報を提供できれば幸いです。ありがとうございました。