Mysql Обновление пользователя Balance SQL синтаксис Ошибка - PullRequest
0 голосов
/ 24 августа 2018

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

 $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|
+-------------+

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Вы забыли, что равны

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

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

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

0 голосов
/ 24 августа 2018

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...