Cum pot crește o valoare cu o interogare de actualizare mysql (php) (Programare, Php, Mysql, Increment)

ganjan a intrebat.

Am o interogare care arată astfel:

$sql = "UPDATE tbl SET amt_field='amt_field+1' WHERE username='" .mysql_real_escape_string($_SESSION['username']). "'";
        mysql_select_db('db',$con);
        mysql_query($sql,$con);

Vreau să măresc valoarea cât mai ușor posibil.

Am încercat:

"UPDATE tbl SET amt_field='amt_field+1' WHERE

"UPDATE tbl SET amt_field='amt_field' + 1 WHERE

"UPDATE tbl SET amt_field='amt_field++' WHERE

Nu primesc mesaje de eroare, dar nici valoarea din baza mea de date nu crește.

2 răspunsuri
Artefacto
UPDATE tbl SET amt_field = amt_field + 1 WHERE ...

Dacă folosiți ghilimelele simple ', îi spui valorii închise să fie interpretată ca un șir de caractere Probabil că te gândeai la semnele de bifare. Este valabil și acest lucru:

UPDATE tbl SET `amt_field` = `amt_field` + 1 WHERE ...

Aceasta trebuie folosită atunci când coloana (sau tabelul etc.) are un nume rezervat.

Comentarii

  • La mine nu a funcționat, dar eu folosesc API C, dacă acest lucru contează. –  > Por user124384.
Derek Brazil

Bună ziua ați inițializat o nouă sesiune. Mai jos a funcționat perfect pentru mine.

  public static function insert_search($pdo)
  {
    @session_start();
    $ip = $_SERVER['REMOTE_ADDR'];
    $username = $_SESSION['username'];
    //$username = self::username();
    $date = date('Y-m-d');
    //Adding the total searches for the logged in user 
    $query = $pdo->query("UPDATE  `users` SET  `total_searches` = `total_searches` +1 WHERE username = '$username'");
  }

/* What you could potentially do is the following.
Make sure if you're doing it the procedural way
you put @session_start(); at the top of the page */

@session_start();
$sql = "UPDATE tbl SET amt_field ='amt_field' +1 WHERE username ='" .mysql_real_escape_string($_SESSION['username']). "'";
        mysql_select_db('db',$con);
        mysql_query($sql,$con);