Závažná chyba není v MySQL; chybějící oznámení o indexu je varováním relativně nízké závažnosti.
Osudné chyba je ve vašem kódu PHP kvůli následujícím třem podmínkám:
- mysqli hlásí hodně varování, a to i pro relativně neškodné podmínky.
- Vyhazujete
mysqli_sql_exception
za všechny chyby a varování kvůli vašemumysqli_report(MYSQLI_REPORT_ALL);
řádek. - Váš kód PHP tuto výjimku nezachycuje (tj. není v
try{}
blok s vhodnýmcatch(){}
blok) a nezachycené výjimky jsou fatální.
S tím prvním toho moc nenaděláte, jak je zmíněno v druhé odpovědi. Takže to můžete opravit buď změnou mysqli_report(...)
nastavení na MYSQLI_REPORT_STRICT
nebo MYSQLI_REPORT_OFF
, nebo vlastně cokoliv jiného než MYSQLI_REPORT_ALL
.
(upravit:níže uvedený komentář w3d poskytuje dobré vysvětlení proč, a navrhuje, abyste mohli použít mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)
jako dobrá alternativa)
Pro osvědčené postupy a v kombinaci s tím byste to měli správně opravit pomocí try{}
a catch(){}
vhodně v rámci vašeho kódu.