Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: PHP, SQL: Tietokannasta kaikkien paitsi tiettyjen poisto

E1ss [16.02.2017 17:56:07]

#

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.

Metabolix [16.02.2017 17:58:26]

#

DELETE FROM taulu WHERE id NOT IN (?, ?)

E1ss [17.02.2017 14:30:07]

#

Kiitos ja viellä olisi sellainen kysymys että onko seuraava koodi hyvin toteutettu vai saisiko jotenkin lyhennetyä?

$kysely = $yhteys->prepare("SELECT card FROM table1cards WHERE id = roundTurn");
$kysely->execute();
$tulos = $kysely->fetch(PDO::FETCH_OBJ);
foreach($tulos as $x){}
return $x;

The Alchemist [17.02.2017 15:26:10]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta