Следующий код работает без каких-либо ошибок, но на самом деле ничего не удаляет:
$update = $mysqli->prepare('DELETE FROM table WHERE RetailerID = ? AND Amount = ? AND FXRate = ?'); $update->bind_param('iii', $rID, $base_value, $fx_rate); $update->execute(); $update->close();
У меня есть многочисленные mysqli подготовленные статусы в этом же файле, которые выполняются отлично, но это единственный, который не изменяет таблицу. Нет ошибок или показанных, но строка также не удаляется из таблицы. Я проверил, что значения $ rID, $ base_value и $ fx_rate являются правильными значениями, а строка DEFINITELY присутствует в таблице, которая соответствует этим значениям.
Единственное различие между этим утверждением и остальными – это параметры и тот факт, что он DELETE вместо SELECT или UPDATE. Я также попытался сделать SELECT или UPDATE вместо DELETE, используя те же параметры WHERE, но не повезло. Проблема заключается в том, что она не находит строку, которая соответствует параметрам WHERE, но, как я уже сказал, строка определенно существует.
Есть идеи?
Является ли сумма целочисленным или двойным? Вы конвертируете в integer ('iii'), но я полагаю, что он будет $ 0,34 или аналогичным. Вместо этого попробуйте «idi».
Изменить: то же самое относится к курсу – это тоже целое или двойное?