我在php $newtotal中有一个动态变量。当此变量大于我的最大数据库整数时,我想执行INSERT
$newtotal = 4000;
mysql_query("INSERT INTO mytable (`DATE`, `TOTAL`, `DBTOTAL`) VALUES ('2012-03-09', '1', '$newtotal') WHERE MAX(`DBTOTAL`) < '$newtotal'");即。在我的数据库中,my MAX(DBTOTAL) = 4050;
这不应该是INSERT;而且,当$newtotal更改为大于4050时,它应该是正确的,但是我在任何一个变量INSERT上都得到了语法错误。这里需要语法方面的帮助。
发布于 2012-03-13 04:41:56
不能在INSERT语句中使用WHERE子句。您将需要检查该值以查看是否要插入,如果满足条件,则执行此操作。
例如:
$result = mysql_query("
SELECT MAX(DBTOTAL)
FROM table
");
list($max) = mysql_fetch_num($result);
if ($max < $newtotal) {
mysql_query("
INSERT INTO table (`DATE`, `TOTAL`, `DBTOTAL`)
VALUES ('2012-03-09', '1', '$newtotal')
");
}发布于 2012-03-13 04:42:26
您可以通过基于SELECT而不是提供VALUES来执行条件插入。
INSERT INTO mytable (`DATE`, `TOTAL`, `DBTOTAL`)
SELECT '2012-03-09', '1', '$newtotal' FROM mytable
WHERE MAX(`DBTOTAL`) < '$newtotal'发布于 2012-03-13 04:42:05
据我所知,您不能在INSERT中使用WHERE。一个if条件应该可以做到这一点:
mysql_query("
IF '$newtotal' > (SELECT MAX(`DBTOTAL`) FROM mytable)
BEGIN
INSERT INTO mytable (`DATE`, `TOTAL`, `DBTOTAL`) VALUES ('2012-03-09', '1', '$newtotal')
END
");https://stackoverflow.com/questions/9674371
复制相似问题