SELECT在UPDATE之后给出旧值

时间:2018-01-26 11:28:53

标签: php mysql

我从表中获取值,更改它并更新表中的值。之后,我尝试从表中选择此值,但它给出了更新前的旧值。在phpmyadmin中,我看到该值已更改。我看不出有什么问题。

require_once('conn.php');
$query = "SELECT first FROM vote WHERE id = 1";
$result = mysqli_query($conn, $query);
$value = $result->current_field;
echo $value."<br>";
$newvalue = $value + 1;
echo $newvalue;

$sql = "UPDATE vote SET first = ".$newvalue." WHERE id = 1";
$do = mysqli_query($conn, $sql);
$conn->close();

2 个答案:

答案 0 :(得分:1)

尝试这样做:

require_once('conn.php');
$query = "SELECT first FROM vote WHERE id = 1";
$result = mysqli_query($conn, $query);
if($result){
    if($row = mysqli_fetch_assoc($result){
        $value = $row['first'];
        echo $value."<br>";
        $newvalue = $value + 1;
        echo $newvalue;
        $sql = "UPDATE vote SET first = $newvalue WHERE id = 1";
        $do = mysqli_query($conn, $sql);
        $conn->close();
    }
}

答案 1 :(得分:0)

尝试在“update”语句后添加提交。

$sql = "UPDATE vote SET first = ".$newvalue." WHERE id = 1; COMMIT;";

您可能想要创建一个提交函数。

function commit(){
      return mysql_query("COMMIT", $this->connection);
}

参考:http://php.net/manual/en/function.mysql-query.php

另外,请提供有关您正在使用的mysql客户端版本的详细信息。在较新的版本中,您可以配置自动提交。