#mysql #pdo
#mysql #pdo
Вопрос:
Это код, который я пытаюсь использовать, поэтому, когда кто-то нажимает «нажмите меня», он обновляет опыт игроков на 1 каждый раз. Это позволяет мне нажимать, но не обновляет базу данных и т.д.
if(isset($_POST["submit"])){
$rpg = "UPDATE members SET exp = exp 1 WHERE `memberID`='{$id}'";
$prepStatement = $db->prepare( $rpg );
$prepStatement->execute(array($id => 1));
}
<form method ="post">
<input type="submit" value="click me"/>
</form>
Я бы хотел, чтобы, когда кто-то нажимает «click me», он получал 1 exp, добавляемый к «exp» в базе данных.
Ответ №1:
Вы неправильно готовите свой запрос — то, как вы это делаете, не имеет параметров, но затем вы передаете один из них в запросе, поэтому вы получите ошибку несоответствия количества параметров. Правильный код должен быть:
$rpg = "UPDATE members SET exp = exp 1 WHERE `memberID`=:id";
$prepStatement = $db->prepare( $rpg );
$prepStatement->execute(array(':id' => $id));
Комментарии:
1. Привет, похоже, это тоже ничего не обновляет :/
2. Как устанавливается
$id
переменная?3. $id = (int) (isset($_GET[‘MemberID’]) ? $_GET[‘MemberID’] : $_SESSION[‘MemberID’] );
4. Поскольку вы используете
POST
,$_GET['memberID']
не будет установлен. Вы проверили, что$_SESSION['memberID']
установлено и допустимо?5. Итак, вы видите какие-либо ошибки? Почему вы выполняете обновление внутри цикла while?