gpt4 book ai didi

php - MySQL插入记录的条件(如果不存在)

转载 作者:行者123 更新时间:2023-11-29 13:17:03 24 4
gpt4 key购买 nike

我正在努力让大部分工作变得更轻松。这是数据库中的一条记录,最终如果没有,则创建它。

这是我的 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

由于我不知道的原因,它不起作用。

最佳答案

就我个人而言,我会考虑寻找另一种方法来解决这个问题。

正如有人指出的:如果两个人有相同的名字(这是可能的),那么你就会遇到问题。

但是,如果 namephone 值上都有 UNIQUE KEY,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)';
}

希望有帮助。

关于php - MySQL插入记录的条件(如果不存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21330320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com