2

使用:

  • MySQL 5.1.68-cll
  • PHPmyadmin 3.5.5
  • Interspire 电子邮件营销器 6.1.2

在 Interspire 中,在我的电子邮件通讯链接中,我想传递一个变量 e=[该订阅者电子邮件的 MD5 哈希]。关于我如何做到这一点的任何想法?我是否需要创建一个名为 e 的自定义字段并运行一个函数,该函数将使用散列值填充它,还是有办法即时完成?

另外,有没有办法在每次有人加入我的电子邮件列表时创建哈希?

谢谢!

4

3 回答 3

1

在我的数据库中,我想创建一个包含哈希的列。我们称它为 hash_of_email。是否可以定义它,以便每次创建新记录时始终创建电子邮件地址的哈希,并为所有现有记录创建哈希?如果是这样,我该怎么做?理想情况下,我会在 PHP 中完成所有这些工作,但我使用的是 Interspire,所以我不想编辑他们的任何文件,因为我不太了解 PHP,或者他们的代码不够好。我能做的是操纵数据库并在 HTML 编辑器中调用自定义变量

如果您将 INNODB 作为表的存储引擎,则可以这样做。

假设您添加一个新列hash_of_email以保留列的哈希值email

更新当前值

UPDATE `table` SET `hash_of_value` = MD5(`email`)

自动更新新记录

请参考MySQL 的 trigger,你需要的是一个 BEFORE CREATE TRIGGER on table。我们开始做吧:

DELIMITER $$
CREATE TRIGGER `TG_table__before_insert`
    ON `table` BEFORE INSERT FOR EACH ROW
BEGIN
    SET NEW.`hash_of_email` = MD5(NEW.`email`);
END $
DELIMITER ;

祝你好运,

于 2013-05-24T04:10:59.843 回答
0

在现代版本的mysql中,你可以

select md5(email_address) from whatevertable;

你们中的一些人也可以通过

$md5edEmail = md5($email_address);
于 2013-05-24T03:35:33.977 回答
0

在 PHP 和 MySQL 中,md5 都是标准函数。你可以像这样使用它:

PHP:

$e = md5($Email);

MySQL:

md5(EmailField)

两者都可以在查询中使用。并且由于您计划将其作为查询字符串传递到 URL 中,因此可以像以下 PHP 示例一样对其进行编码:

$EncodedEmail = urlencode($e);//where $e is from above.

当然,您必须使用urldecode()它来反转它。

更多信息:您只需使用我在 MySQL 查询中显示的 md5 函数。但是我对 Interspire 不熟悉,所以我不能给你任何建议。

至于在查询中使用 md5 函数,这里有一个例子:

$strSQL = "Update MyTable Set
  EmailHash = md5(EmailAddress)";

但是当你说你不能使用 PHP 时,我有点失落。在某些时候,您需要能够将 PHP 变量移动到邮件中并将邮件信息移动到 PHP 代码中。

于 2013-05-24T03:40:54.973 回答