我尝试了许多语法来更新数据库中的单元格,但没有一种有效。以下是我的方案。
我的数据库有3个字段,类型为Time(datetime),Flow(float)和Cumulative(float)
首先,我将最后两行数据放入变量中,然后想要更新/替换累积字段的最后一行,其中条件与日期时间字段。
我怀疑问题出在日期时间字段(和(或)或)引号上。
这是代码。
$sql = "select * from Inflow_table ORDER BY Time DESC LIMIT 2";
$query = mysql_query( $sql );
$row = mysql_fetch_assoc($query);
$LastTime = $row[Time];
$Cumulativeupdate = 35.56; //Here a formula replaces the static value
mysqli_query("UPDATE `Inflow_table` SET `Cumulative` = '.$Cumulativeupdate.' WHERE `Time` = '.$LastTime.' LIMIT 1 ") or die(mysql_error());
代码的其余部分正常工作,但它没有更新累积字段。请帮帮我!
由于您尝试运行不是内置函数的mysqli_query,因此请更改:
mysqli_query("UPDATE `Inflow_table` SET `Cumulative` = '.$Cumulativeupdate.' WHERE `Time` = '.$LastTime.' LIMIT 1 ") or die(mysql_error());
自
mysql_query("UPDATE `Inflow_table` SET `Cumulative` = '".$Cumulativeupdate."' WHERE `Time` = '".$LastTime."' LIMIT 1 ") or die(mysql_error());
还要记住要注意与mysql_*函数相关的SQL注入漏洞。尝试使用:
Mysqli: http://php.net/manual/en/book.mysqli.php
或
PDO:http://php.net/manual/en/book.pdo.php
将查询更改为
mysqli_query("UPDATE `Inflow_table` SET `Cumulative` = "'.$Cumulativeupdate.'" WHERE `Time` = "'.$LastTime.'" LIMIT 1 ") or die(mysql_error());