【问题标题】:Deleting rows from mysql that older than 1 minute [duplicate]从mysql中删除超过1分钟的行[重复]
【发布时间】:2017-01-25 14:31:19
【问题描述】:

我在 LAMP 服务器中有 MySQL 数据库,数据库称为 coe,表称为脉冲。列是:

脉冲 |诠释

标识 |诠释

时间 |时间戳 - 当前时间戳

我想选择脉冲中的所有值,然后选择当前时间最后 1 分钟的最大值。之后,我想删除表中最后 1 分钟的所有行。

我试过这段代码:

<?php 

$servername = "localhost"; 
$username = "root";  
$password = "";
$dbname = "testdb";

$mysqli = mysqli_connect ($servername, $username, $password, $dbname);
$res = mysqli_query($mysqli, "SELECT MAX(pulse) as pulse FROM pulses where pulse BETWEEN 400 and 500 AND time > UNIX_TIMESTAMP() - 60");
$row = mysqli_fetch_assoc($res);
echo $row['pulse'];
$DeleteQuery = mysql_query('DELETE FROM pulses WHERE time > (UNIX_TIMESTAMP() - 60)');
?>

与数据库连接的代码部分并选择具有最大值的数据,它不会删除行。我尝试了很多但没有成功。请帮忙

【问题讨论】:

  • 当然,如果你想要“比”更早,那么你应该使用&lt;
  • 您是否注意到您的$DeleteQuery 设置为mysql_query()
  • 如果您正在费心查看错误日志。问题是什么会很明显

标签: php mysql


【解决方案1】:

你有mysql_query 而不是mysqli_query,检查语法。 正如 Barry Thomas 所说,将您的 &gt; 运算符更改为 &lt;

【讨论】:

  • 他也在查询中使用了不正确的运算符,他有>应该是
  • 谢谢我改成mysqli_query,运营商改成&lt;,但也不起作用,错误现在是mysqli_query() expects at least 2 parameters在线DELETE FROM pulses WHERE time &lt; (UNIX_TIMESTAMP() - 60
  • add ($mysqli, before "Delete... 查看第一个查询
猜你喜欢
  • 2011-03-26
  • 2012-06-30
  • 2013-07-19
  • 2020-08-24
  • 1970-01-01
  • 2017-10-11
  • 2016-10-03
  • 1970-01-01
  • 2012-11-19
相关资源
最近更新 更多