Avaleht
uus teema   vasta Tarkvara »  WWW »  MySQL viga märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 02.06.2009 12:01:41 MySQL viga vasta tsitaadiga

Tekkis selline viga, et kui tahan mingeid andmeid andmebaasis muuta, siis kuvatakse järgmine viga:

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 '' at line 1

See viga tekib ainult siis, kui muudetaval tekstil on tühikud sees. Olen juba paar päeva jamanud aga vea kohta teada ei saa. Äkki keegi oskab leida selle vea ülesse või anda nõu, et tühikuid sisaldaval lause salvestamiselt sellist viga ei tuleks icon_rolleyes.gif Mul endal on tunne, et viga on kusagil jutumärkides aga endateada olen kõik asjad juba läbi katsetanud aga arvan, et midagi on kahesilma vahele jäänud.

Muidugi kui tahate rohkem koodi näha, siis ainult öelge, äkki viga ei olegi selles ning skript pole mul ise kirjutatud.



function Save()
   {
      require("config.php");
      require("database.php");
      require("validator.php");
      $TableID = $_POST['table_id'];
      $Fields = explode("@", $Tables[$TableID]);
      $QUERY = "update `$TableNames[$TableID]` set ";
      $FieldCounter = 0;
      foreach($Fields as $Field)
         {
            $FieldCounter++;
            if(Validate($TableID, $Field, $_POST[$Field]) == "false")
               {
                  $ProperField = $Field;
                  $TMP = explode(" ", $Field);
                  if($TMP[1] != "")
                     {
                        $ProperField = str_replace(" ", "_",$Field);
                     };
                  $QUERY .= "`$TableNames[$TableID]`.`$Field`='".$_POST[$ProperField]."'";
               }
            else
               {
                  die("The value `$_POST[$Field]` at `$Field` in table `$TableName[$TableID]` is not accepted");
               };
            if(sizeof($Fields) > $FieldCounter)
               {
                  $QUERY .= ", ";
               };
         };
      $QUERY .= " where ";
      $FieldCounter = 0;
      foreach($Fields as $Field)
         {
            $Temp = "Old".$Field;
            $SpaceCHK = explode(" ", $_POST[$Temp]);
            $FloatCheck = explode(".", $_POST[$Temp]);
            $Float = false;
            if(is_numeric($_POST[$Temp]) && $FloatCheck[1] != "")
               {
                  $Float = true;
               };
            if($_POST[$Temp] != "" && $SpaceCHK[1] == "" && !$Float)
               {
                  $FieldCounter++;
                  if($FieldCounter > 1)
                     {
                        $QUERY .= " and ";
                     };
                  $QUERY .= "`$Field`"."='".$_POST[$Temp]."'";
               };
         };
      //print($QUERY);
      mysql_unbuffered_query($QUERY);
      if(mysql_error() == "")
         {
            print("<H3 align=center>Edit successfull</H3>");
            echo '<p align=center><a href="main.php?table_id=';print($TableID);echo'">Home</a></p>';
         }
      else
         {
            print(mysql_error());
         };
   };


_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 02.06.2009 12:02:24 vasta tsitaadiga

Absona, aga vaata seda SQL luset siis mida su kood kokku keerab - näed ära mis valesti on.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
sosssepp
HV veteran
sosssepp

liitunud: 12.05.2003




sõnum 02.06.2009 13:12:17 vasta tsitaadiga

Võta näiteks //print($QUERY); real kommentaari märgid maha ja kui ise ei leia, siis kopeeri koodi poolt koostatud päring siia, et vigane koht leida.
Kommentaarid: 87 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 75
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 02.06.2009 13:14:38 vasta tsitaadiga

Renka kirjutas:
Absona, aga vaata seda SQL luset siis mida su kood kokku keerab - näed ära mis valesti on.


Seal on kõik OK, aga viga on lühidalt vist selles, et kui hakatakse vana väärtust asendama uuega, siis vanal väärtusel ei tohi olla tühikut sees - kui on, siis annab veateate ja midagi ei tehta. Seega oleks vaja see probleem lahendada kuidagi.. icon_rolleyes.gif

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Gizmoz
Kreisi kasutaja
Gizmoz

liitunud: 24.09.2005




sõnum 02.06.2009 13:19:14 vasta tsitaadiga

aga see kus sa neid tabeleid genereerid , kas seal ära märgitud et mida kasutada , char , int jne?
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum
TammikSi
HV kasutaja

liitunud: 29.10.2006




sõnum 02.06.2009 13:21:19 vasta tsitaadiga

poole silmaga vaatasin...

äkki võiks htmlspecialchars() kuskile vahele toppida icon_rolleyes.gif
viga vib ka tabelis endas olla icon_razz1.gif
Kommentaarid: 28 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 02.06.2009 13:59:31 vasta tsitaadiga

Absona kirjutas:
Renka kirjutas:
Absona, aga vaata seda SQL luset siis mida su kood kokku keerab - näed ära mis valesti on.


Seal on kõik OK, aga viga on lühidalt vist selles, et kui hakatakse vana väärtust asendama uuega, siis vanal väärtusel ei tohi olla tühikut sees - kui on, siis annab veateate ja midagi ei tehta. Seega oleks vaja see probleem lahendada kuidagi.. icon_rolleyes.gif
Seal ei saa ju kõik korras olla kui MYSQL veateate annab. Kõigepealt tuleks ikka vea allikkas üles leida ja siis vaadata miks asi nii on ja mida parandada.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
TammikSi
HV kasutaja

liitunud: 29.10.2006




sõnum 02.06.2009 14:08:39 vasta tsitaadiga

Shoot first ask questions later icon_lol.gif
Kommentaarid: 28 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 02.06.2009 18:23:55 vasta tsitaadiga

Tänud kõigile kes vastasid thumbs_up.gif Sain asja korda. Igas postituses oli midagi sellist, mis aitas probleemi lahendada icon_smile.gif Tänud veelkord thumbs_up.gif
_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
virus152
HV vaatleja
virus152

liitunud: 05.03.2009




sõnum 02.06.2009 20:08:00 vasta tsitaadiga

Aga äkki räägid meile ka, milles täpselt siis viga seisnes?
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  MySQL viga
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.