Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: php + mysql tallennusongelma

Vasta_alkaja [04.08.2008 13:55:28]

#

Tallennusvaiheessa kaatuu tämä homma. Mistähän voisi johtua

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET tehtava='5€, tyonid=13, tunnus=134' at line 1
Warning: mysql_fetch_assoc(): .....

$k = "SELECT tunnus, tyonid, tehtava FROM $this->taulu WHERE tunnus LIKE '%{$edellinenViikko}{$haettavanViikonVuosi}' AND tyyppi = $this->tyyppi";
        $t = mysql_query($k);

        if(!$t){
          return;
        }

        while($tulos = mysql_fetch_assoc($t))
        {
            if(!empty($tulos['tehtava'])){

            $ensimmainenArvo = $tulos['tunnus'][0];

            $k = sprintf("INSERT INTO SET
              tehtava='%s,
              tyonid=%d,
              tunnus=%d,
              tyyppi=%d",
              htmlspecialchars($tulos['tehtava']),
              intval($tulos['tyonid']),
intval($ensimmainenArvo.$tamanhetkinenViikko.$haettavanViikonVuosi),
              1);
            }

          if(!($t = mysql_query($k))){
            echo mysql_error();
          }
        }

Grez [04.08.2008 13:57:55]

#

Olettaisin ainakin, että $this->taulu ja $this->tyyppi pitäisi olla {} sisällä.

Jos ei auta niin kokeile tulostaa $k arvo ja kerro miltä se näyttää.

Vasta_alkaja [04.08.2008 14:27:09]

#

$k:n arvo =

SELECT tunnus, tyonid, tehtava FROM viikkoraha WHERE tunnus LIKE '%512007' AND tyyppi = 1

seuraava kohta tunnus antaa taas arvoksi
$tulos['tunnus'] arvo on = 5€ 5€ 2€ 2€ 3€ 10€ työraha 10€ työraha

Tallennuksessa vain menee heti sitten pieleen.

Chiman [04.08.2008 15:01:21]

#

Virhe on alla olevalla rivillä, pitää olla '%s',

tehtava='%s,

Se näkyi virheilmoituksessakin.

Ja htmlspecialchars on väärä funktio käytettäväksi tietokantaan menevän merkkijonon käsittelyyn. Oikea on mysql_real_escape_string.

Grez [04.08.2008 15:20:29]

#

Oho, olisi pitänyt lukea tarkemmin. Anteeksi että annoin huonon vastauksen. Näköjään tosiaan -> on ok ilman kaarisulkeitakin. Sinänsä mielestäni huonosti dokumentoitu tuo milloin kaarisulkeet on pakollisia ja milloin ei. Dokumentaatiosta löytyy kyllä esimerkkejä, mutta ei mielestäni mitään tyhjentävää kuvausta simple syntaksin rajoitteista.

Vasta_alkaja [05.08.2008 10:29:27]

#

Hyvä huomio = mysql_real_escape_string...

Vastaus

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

Tietoa sivustosta