Autor Zpráva
Lucassko
Profil *
Ahoj,

mám problém s SQL:

DELETE FROM tabulka WHERE fotka IN (" . implode(',', $_POST['nazevfotky']) . ")

ve formuláři mám vybráno více položek (název dokumentů).

Po vykonání dotazu se vypíše:

Unknown column 'dokument.doc' in 'where clause'.

Pokud ale misto nazvu zvolim ID (což nechci, protože pak soubory fyzicky mažu) tak to funguje.

Nevíáte kde by mohl být zakopanej čokl? Díky
Alphard
Profil
V apostrofech a obecně naprosté ignoraci nějakého escapování a zabezpeční.
Lucassko
Profil *
[#2] Alphard
Přiložím tedy celý soubor:

    if (isset($_POST['delete'])) {
        $error_log = array();
        if (empty($_POST['nazevsouboru']))
            $error_log[] = "Vyberte soubor ke  smazání";
        if (sizeof($error_log) > 0) {
            $result.=_formMessage(2, _eventList($error_log, 'errors'));
        } else {
            if (mysql_query("DELETE FROM tabulka WHERE fotka IN (" . implode(',', $_POST['nazevsouboru']) . ")")) {
                $result.=_formMessage(1, "Záznamy byly vymazány!");        
            } else {
                $result.=_formMessage(3, "Problém na straně SQL!");
                echo mysql_error();
            }
            
        }
    }
Alphard
Profil
Opravte si to sám, k základní funkčnosti (bez dalšío zabezpeční) stačí obalit řetězce do apostrofů.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: