Php sql-插入带条件的代码
我正在尝试编写一个插入代码,如果不存在,则使用条件-Insert。我尝试了两种方法,但我得到了错误信息- 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在“如果不存在,请从类型为“commentRepl”的警报中选择*附近 在1号线 我做错了什么 1: 2:Php sql-插入带条件的代码,php,mysql,Php,Mysql,我正在尝试编写一个插入代码,如果不存在,则使用条件-Insert。我尝试了两种方法,但我得到了错误信息- 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在“如果不存在,请从类型为“commentRepl”的警报中选择*附近 在1号线 我做错了什么 1: 2: mysql_query(" IF NOT EXISTS (SELECT * FROM alerts
mysql_query("
IF NOT EXISTS (SELECT *
FROM alerts
WHERE type = 'commentReply'
AND userID = ".$mainIndex['userID']."
AND viewed = 0)
BEGIN
INSERT INTO `alerts` (type, userID, fromID, refID, createDate) VALUES ('commentReply', ".$mainIndex['userID'].", ".$_SESSION['userDetails']['userID'].", ".$refID.", ".get_current_linuxTime().")
END
");
除非insert语句插入select from,否则不能在select语句中使用where条件 原始mysql语句如下所示
INSERT INTO `alerts` (type, userID, fromID, refID, createDate)
select 'commentReply',1,1, 3, curdate()
from alerts a1
where not exists(
select 1 from alerts a2
where a2.type = 'commentReply'
and a2.userID = 1
and a2.viewed = 0
)
因为您在PHP上使用它,所以您可以根据需要使用一些变量
mysql_query(
"INSERT INTO `alerts` (type, userID, fromID, refID, createDate)
select 'commentReply',".$mainIndex['userID'].",".$_SESSION['userDetails']['userID'].", ".$refID.", ".get_current_linuxTime()."
from alerts a1
where not exists(
select 1 from alerts a2
where a2.type = 'commentReply'
and a2.userID = ".$mainIndex['userID']."
and a2.viewed = 0
)
");
像这样使用。我希望这能给你一些想法:
$exists = "SELECT email, password FROM agent_register WHERE email='$_POST[email]'";
$exists_result = mysql_query($exists);
if (mysql_num_rows($exists_result) > 0) {
$danger_msg = "Error: This email already exists. Please try again.";
} else {
if (mysql_num_rows($exists_result) == 0) {
$sql = "INSERT INTO agent_register(name, company_name, vat_no, status)
VALUES('$name', '$company_name', '$vat_no', '0')";
$result=mysql_query($sql);
}
}
避免使用不推荐使用的mysql函数我遇到此错误-1241-操作数应包含1列
$exists = "SELECT email, password FROM agent_register WHERE email='$_POST[email]'";
$exists_result = mysql_query($exists);
if (mysql_num_rows($exists_result) > 0) {
$danger_msg = "Error: This email already exists. Please try again.";
} else {
if (mysql_num_rows($exists_result) == 0) {
$sql = "INSERT INTO agent_register(name, company_name, vat_no, status)
VALUES('$name', '$company_name', '$vat_no', '0')";
$result=mysql_query($sql);
}
}