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

427

    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. Riikka Purra leikkasi alimmalta tulodesiililtä 15 %

      Muistaako kukaan Riikka Purran kovaäänisen vaalilupauksen ennen eduskuntavaaleja? https://yle.fi/a/74-20221152 "THL o
      Maailman menoa
      329
      6247
    2. Muistele nainen niitä meidän yhteisiä hetkiä

      Miltä ne tuntui? Enkö aina huokunut välittämistä, kiintymystä. Eikö sinulla aina ollut hyvä olo kanssani? Minulla ainaki
      Ikävä
      48
      3706
    3. Sofia Virta: bänet!

      Matkailuautoilija metsänomistaja puoliso on nyt entisen teeren poikia, ja Sofia tekee comebackin vapaille markkinoille.
      Maailman menoa
      150
      2893
    4. "Suomi voisi ottaa taloudessa oppia Espanjasta"

      "Espanjassa talouspolitiikka on löysempää, mutta velka-aste on kääntynyt jopa laskuun.", pohdiskelee Suomen seuraava pää
      Maailman menoa
      227
      2200
    5. Kokoomus: SDP johtaa kansalaisia harhaan

      (Umpityhmät palstademarit ovat taas uskoneet Lindtmanin höpötykset Espanjasta.) SDP harhaanjohtaa kansalaisia talouspol
      Maailman menoa
      107
      1763
    6. Otan vielä joskus yhteyttä

      Ja jos et vastaa, niin tulen sinne. Pakko puhua.
      Ikävä
      72
      1292
    7. Niin että miten

      Haluatko oikeasti olla minun kanssa oikeassa elämässä, vai onko tämä vain kirjoittelua
      Ikävä
      83
      1112
    8. Nuoriso on tyhmää tutkijat ovat todenneet

      Nyt se on todettu ääneen mitä kaikki ovat jo pitkään epäilleet. Nuoriso on tyhmentynyt tasaiseen tahtiin. Kohta pitää ni
      Sinkut
      145
      983
    9. Ikävä tilanne rikoksen vuoksi Espanjassa - Jari Sillanpää pistää uutta matoa koukkuun

      Jari Sillanpää on ehkä yksi suosituimmista tangokuninkaallisista. Ex-tangokuningas juhli viime syksynä 30 vuotista uraan
      Suomalaiset julkkikset
      10
      968
    10. Tätä ei tv:ssä: Farmi-tippuja Amski rehellisenä ongelmista kuvauksissa

      Ennakkosuosikki Amskidabamski Anne-Mari Tarkkio joutui ulos Farmi Suomi -realitystä. Voimatehtävässä vastakkain asettui
      Tv-sarjat
      11
      914
    Aihe