我正在努力让工作变得更轻松。这是一个发现数据库中的记录,如果没有,则创建它。
这是我的命令MySQL:
IF NOT EXISTS( SELECT * FROM USERS
WHERE
name = '$this->m_name'
AND email = '$this->m_email'
)
BEGIN
INSERT INTO `USERS` (`id`, `name`, `email`, `phone`, `text`, `type`)
VALUES (NULL, '$this->m_name', '$this->m_email', '$this->m_phone', '', '');
END
由于我不知道的原因,它没有用。
答案 0 :(得分:1)
就个人而言,我会考虑寻找解决此问题的另一种方法。
有人指出:如果2个人有相同的名字,这是可能的,那么你就会遇到问题。
但是,如果UNIQUE KEY
和name
值都有phone
,则MySQL本身将拒绝插入行,因此您不必这样做。
ALTER TABLE `USERS` ADD UNIQUE (`name`,`phone`);
然后,如果内存正确地为我服务,重复行的MySQL错误号(它应该显示的错误)是1022.这意味着处理输出的代码应该类似于;
$sql = mysql_query("INSERT INTO `USERS` (`id`, `name`, `email`, `phone`, `text`, `type`)VALUES (NULL, '$this->m_name', '$this->m_email', '$this->m_phone', '', '')");
if (mysql_errno() == 1022)
{
echo 'It would appear that you already have an account with us. If you can not access your account, please reset lost password (link here)';
}
希望有所帮助。