- 13, May 2024
- #1
Получился странный.
Только начал работать над новым проектом.
В настоящее время работаю над пользовательским классом. Класс пользователя будет иметь функцию сохранения, позволяющую обновлять соответствующие таблицы, связанные с учетной записью пользователя.
Функция выглядит следующим образом:
PHP: $this->details — это, по сути, массив всех полей таблицы user_account.
У меня проблема в том, что запрос выполняется, но ни одна строка не затрагивается, поэтому никаких изменений не происходит. $stmt->errorInfo(); не показывает ошибок. Когда я копирую запрос, сгенерированный в функции сохранения, а затем заменяю заполнители значениями, все работает отлично.
Я знаю, что это будет небольшая ошибка, но я не могу сказать, где именно.
Любое предложение, что я могу попробовать?
В настоящее время работаю над пользовательским классом. Класс пользователя будет иметь функцию сохранения, позволяющую обновлять соответствующие таблицы, связанные с учетной записью пользователя.
Функция выглядит следующим образом:
function save() {
global $pdo;
$sql = 'UPDATE user_account SET ';
$counter = 0;
foreach ( $this->details as $key=>$field) {
if ( $key != 'ua_id') {
if ($counter > 0 ) {
$sql .= ', ';
}
$sql .= ''. $key.'=:'.$key;
$counter++;
}
}
$sql .= ' WHERE ua_id=:ua_id LIMIT 1';
$stmt =$pdo->prepare($sql);
foreach ( $this->details as $key=>$field) {
if ($key == 'ua_id') {
$field = (int)$field;
}
$stmt->bindParam(':'.$key,$field);
}
$stmt->execute();
}
PHP: $this->details — это, по сути, массив всех полей таблицы user_account.
У меня проблема в том, что запрос выполняется, но ни одна строка не затрагивается, поэтому никаких изменений не происходит. $stmt->errorInfo(); не показывает ошибок. Когда я копирую запрос, сгенерированный в функции сохранения, а затем заменяю заполнители значениями, все работает отлично.
Я знаю, что это будет небольшая ошибка, но я не могу сказать, где именно.
Любое предложение, что я могу попробовать?