Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

mysql id uit database halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Om de één of andere reden is het niet mogelijk om een AUTO INCREMENT id uit mijn database te halen en deze in een variabele te plaatsen

Weet iemand misschien wat ik fout doe? Zie code hieronder als voorbeeld:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$con= mysqli_connect("*********","*********","*********","***********");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
    }

$queryorder = 'INSERT INTO `order`
    (`orderone`, `ordertwo`, `orderthree`)
VALUES
        ("'.$one.'","'.$two.'","'.$three.'")';

$result = mysqli_query($con, $queryorder);
        if (!$result) {
        printf("error: %s\n", mysqli_error($con));
}

       $orderid = mysqli_insert_id();
       var_dump($orderid);

mysqli_close($con);


de mysqli_insert_id komt net na mijn query

Wanneer ik dan een var_dump uitvoer dan krijg ik altijd NULL

Hij schrijft weliswaar wel perfect weg in mijn database!

Bedankt voor de hulp

[ Voor 8% gewijzigd door Verwijderd op 21-12-2013 14:23 ]


  • Biersteker
  • Registratie: Juni 2009
  • Laatst online: 22-11 21:46
Volgens mij moet je bij mysqli ook de connectie aangeven. ;)

PHP:
1
$orderid = $con->insert_id;

Originally, a hacker was someone who makes furniture with an axe.


  • Sircuri
  • Registratie: Oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Of

mysqli_insert_id($con)

Maar goed, dit haal ik uit de eerste hit op Google. Kan niet goed uit je post opmaken of je google gebruikt hebt om je probleem op te lossen.

[ Voor 72% gewijzigd door Sircuri op 21-12-2013 14:28 ]

Signature van nature


Verwijderd

Topicstarter
Biersteker schreef op zaterdag 21 december 2013 @ 14:25:
Volgens mij moet je bij mysqli ook de connectie aangeven. ;)

PHP:
1
$orderid = $con->insert_id;
Hartelijk dank!
Ik ben mezelf hard aan het inwerken met PHP & MYSQL. Hier zat ik een beetje vast omdat ik dacht wanneer de connectie open was dit niet nodig was!

  • Miyamoto
  • Registratie: Februari 2009
  • Laatst online: 15:38
Als je de query die hierboven staat zo wilt gebruiken, gaat er ook wat fout met je database ontwerp.

  • Cartman!
  • Registratie: April 2000
  • Niet online
En waarschijnlijk ben je enorm vatbaar voor SQL injection...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Precision
  • Registratie: November 2006
  • Laatst online: 12-08 21:08
Verwijderd schreef op zaterdag 21 december 2013 @ 14:20:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$con= mysqli_connect("*********","*********","*********","***********");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
    }

$queryorder = 'INSERT INTO `order`
    (`orderone`, `ordertwo`, `orderthree`)
VALUES
        ("'.$one.'","'.$two.'","'.$three.'")';

$result = mysqli_query($con, $queryorder);
        if (!$result) {
        printf("error: %s\n", mysqli_error($con));
}

       $orderid = mysqli_insert_id();
       var_dump($orderid);

mysqli_close($con);
Bij je mysqli_error geef je wel je connectie mee. Het probleem zit hem erin dat je databank niet weet wat te doen moesten er 2 connecties op hetzelfde moment iets wegschrijven, welk id hoort waarbij. Het is ook niet gezegd dat een query even lang duurt om uitgevoerd te worden.

Kijk ook even naar parameterized queries: http://php.net/manual/en/mysqli.prepare.php want nu ben je nogal vatbaar voor sql injecties.

Ik zie dat je bezig bent met orders, let daarbij goed op dat je ook de prijs etc mee opslaat naar historiek toe. Zorg er ook voor dat maar één persoon tegelijk zaken kan aanpassen. Is het mogelijk dat er meerdere personen vanaf hetzelfde account inloggen? Waar sla je dan het winkelmandje op, zodat de accounts niet 1 winkelmandje hebben en inwerken op elkaar. Hoe sla je het order tijdelijk op voor je het verwerkt? Wat bewaar je juist als we het over het tijdelijk aspect hebben? product_id en amount? Welke data is veranderlijk en wens je te archiveren? Wanneer en hoe bepaal je of iets nog in stock is? Welk soort locking pas je toe op je databank? Maak je gebruik van transacties? Wat als jij een prijsverhoging of een product wijzigd op het moment dat iemand het besteld?

Crisis? Koop slim op Dagoffer - Op zoek naar een tof cadeau?

Pagina: 1