Eli minun pitäisi poistaa tietokannasta kaikki tiedot paitsi kaksi kohtaa. Tässä koodi:
$kysely = $yhteys->prepare("DELETE * FROM table1cards WHERE id != ?, ?"); $kysely->execute(array("gameposition", "roundTurn"));
Se kuitenkin varoittaa että ei toimi. Olen kokeillut myös positaa * merkin mutta ei silti toimi. Pahoittelen että tämä on näin yksinkertainen mutta en löytänyt dokumenteista.
DELETE FROM taulu WHERE id NOT IN (?, ?)
Kiitos ja viellä olisi sellainen kysymys että onko seuraava koodi hyvin toteutettu vai saisiko jotenkin lyhennetyä?
Lyhin koodi ei ole aina paras. Esimerkiksi sinun lyhyt koodisi ei tee mitään hyödyllistä. Taitaapi jopa toimia väärinkin, mutta etköhän huomaa sen aikanaan. Toisaalta koodin järkevyys sekä pituuden optimointi riippuu siitä, mitä oikeastaan olet tekemässä. On täysin turhaa kysyä, onko jokin koodi mahdollisimman tiivis, kun kukaan ei tiedä, mihin ongelmaan kyseinen koodi on ratkaisu.
P.S. "Valmisteltuja kyselyitä" eli prepared queryjä on järkeä käyttää vain silloin, kun kysely ottaa parametreja. Koko preparoinnin idea on irroittaa parametrit kyselyn rungosta, jotta injektiohyökkäysten käyttö ei olisi mahdollista.
Aihe on jo aika vanha, joten et voi enää vastata siihen.