Я запрашиваю базу данных и сохраняю результаты в массиве. Я хочу удалить строки из базы данных, которые соответствуют результатам в указанном массиве. Я также должен удалить несколько таблиц, которые также имеют одинаковое имя, как значения, хранящиеся в массиве. Вот почему я делаю ЗЕЬЕСТ первый и не только DELETEУДАЛИТЬ несколько строк, используя условие IN mysqli
... //$returnedEventIDs is the results of a SELECT query
// create array to save events
$eventsArrayOfIDs = array();
//loop through the results and save each to the array
while ($eventID = mysqli_fetch_assoc($returnedEventIDs)){
$eventsArrayOfIDs[] = $eventID['EventID'];
}
$events = join(',',$eventsArrayOfIDs);
$deleteOutdatedEventsAndTables = "DELETE FROM TMVUKMeetUps WHERE EventID IN ($events)";
Я надеялся, что «DELETE FROM таблицы WHERE пары IN ($ события)»; удалит все строки из таблицы, где param = один из элементов массива $ events.
вместо я получаю ошибку
// ID9nfm9528 является первым элементом в массиве
Неизвестный столбец 'ID9nfm9528' в 'где предложение'
Как я могу обновить УДАЛИТЬ для достижения моих целей?
большое спасибо
var_dump $ deleteOutdatedEventsAndTables вы должны найти свою ошибку для удаления – Atiqur
, которая дает строку (55) "УДАЛИТЬ ОТ TMVUKMeetUps WHERE EventID IN (ID9nfm9528);" – RyanTCB
сначала проверьте структуру базы данных для столбца EventID. если это поле char/varchar, вам нужно изменить эту строку $ events = join (',', $ eventsArrayOfID); to: $ sap = ''; $ events = ''; foreach ($ eventsArrayOfIDs as $ id) {\t \t $ events. = $ Sap. "'$ Id'"; \t $ sap = ','; \t } – Atiqur