kostenloser Webspace werbefrei: lima-city


SQL (pdo) speichert die Daten nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    internetplattform

    internetplattform hat kostenlosen Webspace.

    Hallo Zusammen

    Ich habe neu eine sql erstellt. Das Abfragen der Daten aus der Datenbank funktioniert, aber speichern leider nicht. Es gibt keine Fehlermeldung, aber gehe ich in die Datenbank schauen, sehe ich die geänderten Daten nicht.

    $pdo = new PDO('mysql:host=server;dbname=datenbank', 'benutzer', 'passwort');
    
    
    
    
    if (0 == '$ds')
    {
    $statement = $pdo->prepare("INSERT INTO person
    (
    nname,
    pname,
    typ,
    bild
    )VALUES(
    '$nname',
    '$pname',
    '$typ',
    '$bild'
    )");
    }
    else
    {
    $statement = $pdo->prepare("update person set
     nname='$nname',
     pname='$pname',
     typ='$typ',
     bild='$bild'
      where (ds = $ds)");
    }


    Was habe ich falsch gemacht.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    Der Code könnte kaum schlechter formatiert sein, da erkenne ich nicht viel.
    Würde aber sagen das man prepare genau so nicht verwendet.
    https://www.php.net/manual/de/pdo.prepare.php


    Beitrag zuletzt geändert: 25.11.2019 14:58:13 von horstexplorer
  4. witze-dschungel

    witze-dschungel hat kostenlosen Webspace.

    horstexplorer schrieb:
    Würde aber sagen das man prepare genau so nicht verwendet.

    Exakt. Prepared statements sollen Platzhalter für die Werte enthalten, nicht die Werte an sich.

    Des weiteren enthält folgende Zeile vermutlich einen Fehler:
    if (0 == '$ds') {

    Du überprüfst, ob der String "$ds" gleich dem Integer 0 ist. Das kann niemals true sein. Sofern du die Variable vergleichen möchtest sollten die Anführungszeichen weg, also 0 == $ds statt 0 == '$ds'.

    Ich vermute, dass $ds für die userID steht. Mit dem aktuellen code werden also nur Nutzer aktualisiert und keine neuen erstellt, da die oben genannte Zeile fehlerhaft ist.
  5. Autor dieses Themas

    internetplattform

    internetplattform hat kostenlosen Webspace.

    Habe "if (0 == '$ds')" angepasst.
    früher bei mysql ging der code so.
    wie muss dies nun für pdo gemacht werden?

  6. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    So wie es in der Dokumentation an den Beispielen erklärt ist.
    https://www.php.net/manual/de/pdo.prepare.php
    Ich persönlich finde die Variante der Zuweisung der Werte mit bindParam/Value schöner, an sich geht es aber auch über execute() so wie in den Beispielen beschrieben.
    https://www.php.net/manual/de/pdostatement.bindparam.php


    Beitrag zuletzt geändert: 25.11.2019 16:38:15 von horstexplorer
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!