mysql-kysely

mikä vikana?

Osaako joku sanoa mikä vikana alla olevassa kyselyssä:

$kysely = mysql_query("SELECT * FROM mopot WHERE Merkki = '$_POST['merkki']'");

tuohon riviin siis viittaa virheilmoitus, olen koittanut tuota muuttaa vaikka miten mutta aina sama juttu - ei toimi.

6

341

Äänestä

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • eikunvaan

      Helpottais jos tietäisi minkä virheilmoituksen tulostaa?

      Oletko kokeillut näin:

      $kysely = mysql_query("SELECT * FROM mopot WHERE Merkki = ' ".$_POST['merkki']." ' ");

      Eli lainausmerkit ja merkkijonoliitos tuohon $_post:in ympärille?

      • mutta....

        sain toimimaan, niin että enää valittaa viimeistä riviä koodissa:
        Parse error: syntax error, unexpected $end in... on line 40

        ja tuolla ei ole kuin ....


      • eikunvaan
        mutta.... kirjoitti:

        sain toimimaan, niin että enää valittaa viimeistä riviä koodissa:
        Parse error: syntax error, unexpected $end in... on line 40

        ja tuolla ei ole kuin ....

        Jostain on sulta unohtunut sulkea hakasulku }


    • Vaan näin

      Jos jostain syystä haluat kerjätä ongelmia käyttämällä antiikkisia mysql-funktioita niin muista filtteröidä kaikki käyttäjiltä saamasi merkkijonot ensin ei-sallittujen merkkien varalta ja sen jälkeen eskapettaa ne merkkijonot käyttäen funktiota mysql_real_escape_string(). Myös magic_quotesin päälläolo pitää tarkastaa, jos tuotantoympäristö ei ole tarkasti tiedossa, ja tarvittaessa ajaa kaikki käyttäjien syötteet stripslashes()-funktion lävitse. Em. vaiheet ovat pakollisia jos olet skriptiäsi laittamassa julkisesti esille, eikä yhtäkään niistä voi jättää välistä.

      Vanhentuneiden mysql-funktioiden sijasta on parempi kuitenkin käyttää PDO:ta:

      // Filtteröi käyttäjän syöte
      $merkki = preg_replace('/[^a-z]/', '', $_POST['merkki']);

      // Luo tietokantayhteys
      try {
      $dbh = new PDO('localhost', 'tunnus', 'salasana');
      }
      catch (PDOException $e) {
      die($e->getMessage();
      }

      // Suorita kysely
      $stmt = $dbh->prepare('SELECT * FROM mopot WHERE Merkki = ?');
      $stmt->execute(array($merkki));

      // Sijoita mopot taulukkoon
      $mopot = $stmt->fetchAll();

      • Vaan näin

        // Luo tietokantayhteys
        try {
        $dbh = new PDO('mysql:localhost;dbname=tietokanta', 'tunnus', 'salasana');
        }
        catch (PDOException $e) {
        die($e->getMessage());
        }


      • fjjfa

        Toki PDO:n functioita kannattaa käyttää tai sitten MYSQLI:n mikäli tietää että vain MySQL tullaan käyttämään, MYSQLI on hieman monipuolisempa kuin PDO.

        Tuossa sinun esimerkissäsi ihmetyttää
        // Filtteröi käyttäjän syöte
        $merkki = preg_replace('/[^a-z]/', '', $_POST['merkki']);

        Mitä tuolla saavutetaan?
        Aika outoa olisi jos tietokannassa merkki muutettaisiin noin.

        Ja tuota sinun esimerkkiäsi muuttaisin niin, että jos kysely epäonnistuu niin se antaisi poikkeuksen ja se siepattaisiin. Näin virheenkäsittely on helppoa.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ukrainan ulkoministeri: Moskova aistii tappion Ukrainassa

      Dmytro Kuleban mukaan Venäjä yrittää puheillaan pelotella länsimaita. Ukrainan ulkoministerin Dmytro Kuleban mukaan Venäjän esittämät varoitukset kol
      NATO
      261
      4283
    2. Stefu haikailee

      Julkaisi stooreissa kuvan vickestä. Sitten Martinasta treenaamassa Hangossa ulkona. Hmm.
      Kotimaiset julkkisjuorut
      265
      3487
    3. Harmi mies ettet arvostanut

      Minua tarpeeksi. Myöhemmin kaikki olisi palkittu ja olisin antanut sinulle aitoa rakkautta. Tämä sattuu mutta yritän ajatella, että ehkä se rakkaus ku
      Ikävä
      154
      1817
    4. Oi! Legandaarinen Vesa-Matti "Vesku" Loiri, 77, poseeraa kahdessa eri kuvassa - Some riemastui!

      Vesa-Matti "Vesku" Loiri on kyllä legenda jo eläessään. Hienoa nähdä, että virtaa piisaa. Voimia, iloa ja eloa, Vesku! https://www.suomi24.fi/viihde
      Suomalaiset julkkikset
      25
      1707
    5. Lavrov väläyttelee WW3:sta

      Venäjän ulkoministeri Sergei Lavrov varoittaa, että kolmannen maailmansodan uhka on todellinen. Lavrov sanoi venäläiselle uutistoimisto Interfaxille,
      Maailman menoa
      298
      1443
    6. Ketä Sofia fanit veikkaatte seuraavaksi lompakoksi?

      Kenestä Sofia höynäyttää itselleen seuraavan lompakon?
      Kotimaiset julkkisjuorut
      133
      950
    7. Voiko hyvää omatuntoa ostaa?

      Olen tässä nyt muutaman päivän paininut erään rahaan liittyvän pulman kanssa. Kerron ensin vähän taustaa ... Eli erosin 15 vuoden parisuhteesta 9 vuo
      Sinkut
      235
      863
    8. en vaan saa häntä pois

      Mielestäni pyörimästä. Onko kellekään toiselle käynyt näin? Ihastuin pakkomielteisesti noin vuosi sitten erääseen naiseen. Ei vaan katoa mielestä va
      Ikävä
      115
      852
    9. Suomi24 kysely: ihmisten kuplautumista ei pääosin koeta vakavaksi ongelmaksi

      “Kuplautumista on mahdotonta estää. Ihmiset ovat aina viihtyneet samankaltaiset arvot ja maailmankatsomuksen jakavassa seurassa ja muodostaneet sen pe
      Suomi24 Blogi ★
      18
      849
    Aihe