首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当字段大于php变量值时插入MySQL

当字段大于php变量值时插入MySQL
EN

Stack Overflow用户
提问于 2012-03-13 04:31:45
回答 4查看 1.5K关注 0票数 1

我在php $newtotal中有一个动态变量。当此变量大于我的最大数据库整数时,我想执行INSERT

代码语言:javascript
复制
$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上都得到了语法错误。这里需要语法方面的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-13 04:41:56

不能在INSERT语句中使用WHERE子句。您将需要检查该值以查看是否要插入,如果满足条件,则执行此操作。

例如:

代码语言:javascript
复制
$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')
    ");
}
票数 2
EN

Stack Overflow用户

发布于 2012-03-13 04:42:26

您可以通过基于SELECT而不是提供VALUES来执行条件插入。

代码语言:javascript
复制
INSERT INTO mytable (`DATE`, `TOTAL`, `DBTOTAL`)
SELECT '2012-03-09', '1', '$newtotal' FROM mytable
WHERE MAX(`DBTOTAL`) < '$newtotal'
票数 2
EN

Stack Overflow用户

发布于 2012-03-13 04:42:05

据我所知,您不能在INSERT中使用WHERE。一个if条件应该可以做到这一点:

代码语言:javascript
复制
mysql_query("
    IF '$newtotal' > (SELECT MAX(`DBTOTAL`) FROM mytable)
    BEGIN
        INSERT INTO mytable (`DATE`, `TOTAL`, `DBTOTAL`) VALUES ('2012-03-09', '1', '$newtotal')
    END
");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9674371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档