0

メールアドレスを提供しているはずの外部アプリケーションから文字列値を取得しています。ただし、この文字列値は、電子メールアドレスに付随する表示名を提供する場合があります。<brackets>内にある電子メールアドレスのみが必要なので、ステートメントSELECT内で何らかのサブ文字列または句を実行する必要があると思います。INSERT

INSERTテストデータとともに、私のステートメントは次のようになります。

INSERT INTO tblInquiry
(fldInquiryFromEmail)
VALUES ('"\'Tim Lastname\'" <timm@testCCaddcompany.com>')
4

3 に答える 3

1

@eggyalのコメントに同意します。ただし、必要な場合は、次のようにします。

INSERT INTO tblInquiry (fldInquiryFromEmail)
VALUES (substring_index(substring_index('"\'Tim Lastname\'" <timm@testCCaddcompany.com>', '<', -1), '>', 1))

(山かっこなしで)実際の電子メールを渡しても、これは引き続き機能することに注意してください。

于 2012-05-17T13:31:50.817 に答える
0

データベースに実際に挿入する前に、文字列から電子メールを抽出する必要があります。これは簡単だからです。スペースで区切られた文字列のどの部分が電子メールアドレスであるかわからない場合は、文字列をスペースで分割し、filter_var()すべてのサブ文字列でPHP関数を使用できます。

    //first, sanitize user input
    $str = filter_var($_POST['some_input'], FILTER_SANITIZE_STRING);

    //second, convert the string into array
    $str = explode(' ',$str);

    //third, check for valid email inside the array
    foreach ($str as $key=>$value) {         
      if (filter_var($value, FILTER_VALIDATE_EMAIL))
      echo $value;
    }
于 2012-05-17T13:24:05.663 に答える
0

私があなたの質問を理解している限り、あなた<>はmysql関数を使用できるように間に電子メールアドレスを抽出したいと思います

SELECT SUBSTRING('<test@gmail.com>',2,LENGTH('<test@gmail.com>')-1)
//return test@gmail.com

参照:

SUBSTRING

LENGTH

于 2012-05-17T13:28:18.737 に答える