Trabel
Trabel

Reputation: 353

SELECT gives old values after UPDATE

I get value from the table, change it and update the value in the table. After that I try to select this value from the table, but it gives old value that was before updating. In the phpmyadmin I see that value was changed. I can't see what is wrong.

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();

Upvotes: 3

Views: 1947

Answers (2)

godot
godot

Reputation: 3545

Try to do like that:

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();
    }
}

Upvotes: 1

hagai
hagai

Reputation: 464

Try adding a commit after "update" statement.

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

You may want to create a function for commit.

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

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

Also, please provide details about the mysql client version you are using. In newer versions, you can configure autocommit.

Upvotes: 0

Related Questions