使用:
- MySQL 5.1.68-cll
- PHPmyadmin 3.5.5
- Interspire 电子邮件营销器 6.1.2
在 Interspire 中,在我的电子邮件通讯链接中,我想传递一个变量 e=[该订阅者电子邮件的 MD5 哈希]。关于我如何做到这一点的任何想法?我是否需要创建一个名为 e 的自定义字段并运行一个函数,该函数将使用散列值填充它,还是有办法即时完成?
另外,有没有办法在每次有人加入我的电子邮件列表时创建哈希?
谢谢!
使用:
在 Interspire 中,在我的电子邮件通讯链接中,我想传递一个变量 e=[该订阅者电子邮件的 MD5 哈希]。关于我如何做到这一点的任何想法?我是否需要创建一个名为 e 的自定义字段并运行一个函数,该函数将使用散列值填充它,还是有办法即时完成?
另外,有没有办法在每次有人加入我的电子邮件列表时创建哈希?
谢谢!
在我的数据库中,我想创建一个包含哈希的列。我们称它为 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 ;
祝你好运,
在现代版本的mysql中,你可以
select md5(email_address) from whatevertable;
你们中的一些人也可以通过
$md5edEmail = md5($email_address);
在 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 代码中。