Mysql Обновить пользовательский синтаксис SQL SQL Ошибка

Я хочу обновить баланс пользователей, но я не знаю, как это сделать. С моим кодом его не работает:

 $sql = "UPDATE apiusers SET balance = balance - (product_price) WHERE username = (username);";
if(mysqli_query($link, $sql)){
    echo "Records added successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

Таблица apiuser:

+-------------+
| Field       | 
+-------------+
| id          | 
| user        |
| pass        | 
| balance     |
| lastip      | 
| lastlogind  |
| email       |
| verification|
+-------------+

mysql,sql,

0

Ответов: 2


-1 принято

Вы забыли свой равный

$sql = "UPDATE apiusers 
        SET balance = (balance - product_price)
        WHERE user = "".$username."";";

"username ", потому что "будет закрывать строку для $ sql и с " вы предотвращаете это.

Вам нужно «Где», поэтому вы можете обновить столбец с идентификатором xy.


1

Я бы ожидал чего-то вроде этого:

update apiusers
    set balance = balance - ?   -- how much to change the balance
    where userid = ?;           -- which user to change it for

(Конечно, я не знаю, как идентифицируются пользователи.)

Это ?для параметров, которые нужно пройти. Вы должны использовать параметры, а не набивать значения в строки.

MySQL, MS SQL,
Похожие вопросы