[PHP + AdoDB + MYsql] Error bij insert, heel vaag...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

ik heb een script gemaakt die een gebruiker toevoegd in een tabel. De naam enzo vul je in, in een form. dan toevoegen...

Ik wil via ODBC gaan werken omdat ik dalijk verschillende databases wil gaan ondesteunen.

nou gaat het opzich goed, maar krijg deze foutmelding:

[MySQL][ODBC 3.51 Driver][mysqld-3.23.52-nt]You have an error in your SQL syntax near ''60Bd1481' at line 1
INSERT INTO Gebruikers VALUES (18, 'fdsafe34fefas', 'dasf', 'asdfasd', 'fasd', '60Bd1481')

Terwijl er volgens mij niks met de query fout is. Als ik deze invoeg mbv PHPmyadmin gaat het ook goed...

Nog vreemder is dat het bv. 3 keer goed gaat (als ik steeds een gebruiker toevoeg) en dan geeft ie opeens bij de 4de keer die fout, als ik die dan een aantal keer refresh (waarbij de laatste kolom wel veranderd van waarde) het opeens gewoon weer goed gaat....

Acties:
  • 0 Henk 'm!

  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 17-09 16:30

MAZZA

Barbie is er weer!

Laat je php code eens zien waar die query wordt uitgevoerd?

Acties:
  • 0 Henk 'm!

Verwijderd

Hmm, lijkt erop dat je verbinding met je db-source niet zo lekker is ? Check dat eens zou ik zeggen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
include('phpfiles/include.php');

        function genPass($usersname)
        {
            // simpel generatortje... 
/* snip */
        }


for($i=1;$i<300;$i++)
{
        $pass = genPass('testlogin');
        $nextid = GetMaxUserID($conn);
        $saveSQL = "INSERT INTO Gebruikers 
                                                      VALUES ($nextid, 'testlogin', 'testvoornaam', 
                                                      'testtussen', 'testachternaam', '$pass')";
        $recordSet = &$conn->Execute($saveSQL);
        if (!$recordSet) 
        {
            echo $conn->ErrorMsg(); 
            echo $saveSQL;
            $AlertString = "Er is iets foutgegaan *";
            echo "<script>alert('$AlertString');</script>";
            exit();
        }
}
        
        $recordSet->Close(); # optional
        $conn->Close(); # optional


even dit testscriptje gemaakt, en tot mijn grote verbazing gaat het fout als ik die genPass functie gebruik. Alsik dus ipv $pass '3eed923d' ofzo invul gaat het goed... met die functie ertussen gaat het fout... huh?

[ Voor 22% gewijzigd door drm op 19-02-2003 11:20 . Reden: even je passgenerator er uit :) ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 20-09 14:03
Misschien is het gegenereerde passwoord te lang om in die column te zetten.... (Al denk ik dan dat het gewoon zou getruncated worden).

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Mag ik je even de tip geven je password generators voortaan op random basis te laten functioneren? Met deze password generator kan ik wachtwoorden van gebruikers achterhalen op basis van hun gebruikersnaam, en dat lijkt me niet de bedoeling :)

offtopic:
Vandaar dat ik 'm dus ook maar even weggehaald heb

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nee het gegenereerde wachtwoord is altijd 8 karakters lang.... dat kan het dus niet zijn...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm... maakt verder niet uit als iemand die code van genPass ziet ofzo.... misschien zit het probleem juist in die code... kan het geen 'tijd' - probleem zijn ofzo? dat die genpass te 'traag' is? lijkt me niet eigenlijk...

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Deze zit er niet voor niets Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif

En het probleem kan niet in genPass zitten, want je krijgt een foutmelding van mysql op basis van een volledige query ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
drm schreef op 19 February 2003 @ 11:26:
Deze zit er niet voor niets [afbeelding]

En het probleem kan niet in genPass zitten, want je krijgt een foutmelding van mysql op basis van een volledige query ;)
Toch even dat genPass....


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        function genPass($usersname)
        {
            // simpel generatortje... 
            $md5usrname = md5($usersname);
            $len = strlen($md5usrname);
            $len2 = $len / 4;
            $pass = substr($md5usrname,1,$len2);

            for($i=0;$i<strlen($pass);$i++)
            {
                $ok = rand(0,strlen($pass));
                $pass[$ok] = strtoupper($pass[$ok]);
            }

            return $pass;
        }


Als ik dit stukje weglaat, gaat het wel goed?!?!

code:
1
2
3
4
5
            for($i=0;$i<strlen($pass);$i++)
            {
                $ok = rand(0,strlen($pass));
                $pass[$ok] = strtoupper($pass[$ok]);
            }

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vaag! Als ik ipv $ok = rand(0,strlen($pass)); neerzet $ok = rand(0,7); gaat het ook goed!! met een 8 gaat het verkeerd!

Toch vreemd.... maar het werkt iig.... doe maar op slot...
Pagina: 1