Я пытаюсь увеличить строки в таблице с помощью PHP PDO, и я пришел с этим запросом
UPDATE users SET log = ?
Я пытаюсь сделать обновление на основе предыдущего значения в каждом столбце журнала
Итак, если бы моя таблица была такой, как раньше
+----+------+------+-----------+--------+
| id | name | age | eye_color | log |
+----+------+------+-----------+--------+
| 21 | OLa | 19 | black | 1 |
| 22 | OLa | 19 | Green | 2 |
| 23 | OLa | 19 | Grey | 3 |
+----+------+------+-----------+--------+
Ожидаю получить этот результат
+----+------+------+-----------+--------+
| id | name | age | eye_color | log |
+----+------+------+-----------+--------+
| 21 | OLa | 19 | black | 2 |
| 22 | OLa | 19 | Green | 3 |
| 23 | OLa | 19 | Grey | 4 |
+----+------+------+-----------+--------+
Я обнаружил, что могу сделать значение моего заполнителя равным
log + 1
Там, сделав полный запрос
UPDATE users SET log = log + 1
Это хорошо работает, когда я использую метод запроса PDO, а такжеиз моего терминала проблема возникает, когда я пытаюсь обновить это, используя подготовленные операторы, если я сделал
$stmt = $this->pdo->prepare("UPDATE users SET log = ?");
$stml->execute(['height + 1']);
Тогда все столбцы журнала становятся 0.
Есть что-то, что я делаю неправильно?Я также знаю, что могу просто сделать запрос простым
$stmt = $this->pdo->prepare("UPDATE users SET log = log + 1");
$stmt->execute(['log + 1']);
Но я бы предпочел мой первоначальный подход, я работаю с некоторыми ограничениями.