Ankündigung

Einklappen
Keine Ankündigung bisher.

Speichern in SQL DB nach Serverwechsel nicht möglich

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Speichern in SQL DB nach Serverwechsel nicht möglich

    Ich habe meine Webseite von einem Root-Server auf einen anderen übertragen: alle Dateien und Datenbank-Tabellen sind übertragen wurden. Die Datenbanken wurden mittels MY-SQL-Admin Export/Import übertragen und sind identisch. Alle php-Dateien sind identisch. Wenn ich jetzt auf dem neuen Server etwas von der Webseite aus in die DB speichern will - z.b. User-Kommentar, oder neue Registrierung, klappt es nicht. Es wird nichts gespeichert. Woran könnte das liegen (Datenbank-Verbindung steht und ist korrekt aufgenaut)?

    Code sieht z.b. so aus:
    Code:
    $statement = $pdo->prepare("INSERT INTO users (email, passwort, nickn, token, opt_in, status)
     VALUES (:email, :passwort, :nickn, :token, :opt_in, :status)");
     $result = $statement->execute(array('email' => $email, 'passwort' => $passwort_hash, 'nickn' => $nickn, 'token' => $token, 'opt_in' => $opt_in, 'status' => $status ));
    Funktionierte auf dem alten Server ohne Probleme - jetzt nicht mehr.

  • #2
    Probiere es doch zunächst Mal mit einer Fehlerausgabe.

    zum Beispiel:
    PHP-Code:
    print_r($statement->errorInfo()); 
    http://php.net/manual/de/pdostatement.errorinfo.php

    Sind auf dem neuen Server auch alle notwendigen Extensions installiert? Prüfe das Mal mit phpinfo()!

    Ansonsten error_reporting() hochschrauben und Fehler ausgeben lassen.

    PHP-Code:
    error_reporting(E_ALL);
    ini_set('display_errors''On'); 

    Ich vermute, dass irgendeine Extension fehlt oder falsch konfiguriert ist oder Rechte bei der Datenbank nicht stimmen.

    Kommentar


    • #3
      Zitat von webtaxi Beitrag anzeigen
      Die Datenbanken wurden mittels MY-SQL-Admin Export/Import übertragen und sind identisch.
      Wie sieht's aus mit den Benutzerberechtigungen?

      Kommentar


      • #4
        Error Reporting bei PDO aktivieren.

        Kommentar


        • #5
          Zitat von Gnom42 Beitrag anzeigen
          Probiere es doch zunächst Mal mit einer Fehlerausgabe.

          zum Beispiel:
          PHP-Code:
          print_r($statement->errorInfo()); 
          Das ergibt folgenden Hinweis:

          Array ( [0] => HY000 [1] => 1364 [2] => Field 'id' doesn't have a default value )

          Field "id" wird als AUTO_INCREMENT genutzt:
          Code:
          ALTER TABLE `bigdb` CHANGE `id` `id` BIGINT(20) NOT NULL AUTO_INCREMENT;

          Kommentar


          • #6
            Wie sieht das CREATE aus? Hast du PRIMARY gesetzt? Google mal die Fehlermeldung .. zB https://stackoverflow.com/questions/...-default-value

            Hat ev. (Serverwechsel) damit zu tun - sieht dort im Link. Auch vom Strict Mode ist was beschrieben.

            Since mysql 5.6, there is a new default that makes sure you are explicitly inserting every field that doesn't have a default value set in the table definition.
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar

            Lädt...
            X