【问题标题】:mysql variables declaration with queries in phpmysql 变量声明与 php 中的查询
【发布时间】:2016-11-12 02:32:34
【问题描述】:

我是 php 新手,我希望这段代码在 mysql 中完美运行,但拒绝在我的 php 代码中运行。下面是所说的mysql查询...

set @maxDate = (select MAX(login) from logs where userId=3 );
set @currentDateTime = now();                                            set @diff = timestampdiff(minute, @maxDate, @currentDateTime);                     set @duraMin = @diff DIV 60;
set @duraSec = @diff MOD 60;                                                    set @duration = concat(@duraMin,'min',' ',@duraSec,'sec');                      

UPDATE logs SET logout= @currentDateTime, duration=@duration  WHERE userId = 3 AND login=@maxDate;

如果我能在这里得到帮助,我将不胜感激。谢谢

编辑 上面代码背后的想法是,在我的数据库中有一个名为 Logs 的表,其中包含 userID、login、logout 和 duration 列。每次用户登录时,我都会在 Logs 表中插入用户 ID 和登录日期时间,其余字段为空(注销和持续时间)。 当他注销时,会在最近登录“MAX(Login) WHERE userID = 'current_user_Id'”的表上进行更新,并插入相应的用户 ID 和注销日期时间,并计算并插入相应的持续时间。 如果有任何帮助甚至更好的想法,我将不胜感激。谢谢

【问题讨论】:

  • PHP 用在哪里?
  • 感谢您的关注。我已经能够找到使用相应登录名更新注销列的方法,但剩下的就是设置自动更新同一行的持续时间列,即登录和注销差异。再次感谢

标签: php mysql


【解决方案1】:

在存储过程中编写这段代码并在 PHP 中调用它。它可以帮助您轻松快速地运行此查询

【讨论】:

  • 谢谢,但我对 php 中的存储过程不太了解。如果您能帮助我,我将不胜感激
【解决方案2】:

从 PHP 你首先要connect to MySql.

然后你就可以使用到query the selected database的连接了。

PHP 发送给 MySQL 的查询是一个字符串。如果查询成功,它将返回一个row count>=0

在您的情况下,更新查询; 返回计数:

-1 -> 查询错误

0 -> 没有可更新/未发现任何更改

>0 -> 受影响的行

PHP 不会告诉您查询失败的原因。它只是传递字符串并为您提供来自 MYSQL 的反馈。

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多