Ankündigung

Einklappen
Keine Ankündigung bisher.

Werte in DB übernehmen

Einklappen

Neue Werbung 2019

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

  • Werte in DB übernehmen

    Hallo!
    Ich habe ein Formular mit dem ich Werte in eine DB schreibe:

    Code:
    // Daten eintragen
      // Die Datenbanktabelle `Tabellenname` muss vor dem ersten Eintrag erstellt werden!
      $Kommando = $Verbindung->prepare("INSERT INTO `xxxx`
       SET
        `maschinenbezeichung` = :maschinenbezeichung, 
        `istkonzentration_kss` = :istkonzentration_kss, 
        `phwert_aktuell` = :phwert_aktuell, 
        `nitritgehalt_aktuell` = :nitritgehalt_aktuell, 
        `temperatur` = :temperatur, 
        `letzter_ksstausch` = :letzter_ksstausch, 
        `massnahmen` = :massnahmen, 
        `pruefer` = :pruefer, 
        `kalenderwoche` = :kalenderwoche,
    
       ");
        $Kommando->bindValue(":maschinenbezeichung", $maschinenbezeichung);
        $Kommando->bindValue(":istkonzentration_kss", $istkonzentration_kss);
        $Kommando->bindValue(":phwert_aktuell", $phwert_aktuell);
        $Kommando->bindValue(":nitritgehalt_aktuell", $nitritgehalt_aktuell);
        $Kommando->bindValue(":temperatur", $temperatur);
        $Kommando->bindValue(":letzter_ksstausch", $letzter_ksstausch);
        $Kommando->bindValue(":massnahmen", $massnahmen);
        $Kommando->bindValue(":pruefer", $pruefer);
        $Kommando->bindValue(":kalenderwoche", $kalenderwoche);
    Wie kann ich felder übergeben die nicht im Formular erscheinen aber eingetragen werden sollen.
    Ich kann ja es so nicht machen:
    Code:
      `irgendwas` = :irgendwas,
    
    $Kommando->bindValue(":irgendwas", Neuestes);
    Sodass dann in der DB bei irgendwas , Neuestes eingetragen wird.


    und wenn ich es so mache:
    Code:
     <tr>
    <td>
    <input type="hidden" name="Produktlinie" value="Präzisionsteile">
    </td>
    </tr>
    bekomme ich ne weiße Seite
    http://www.krassevideos.net
    http://www.mein-neues-iphone.de
    http://www.webkatalog.es

  • #2
    weiße Seite
    Das spricht dafür, dass du mal das error_reporting und die Fehlerausgabe einschalten solltest.
    [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
    [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

    Kommentar


    • #3
      das error_reporting und die Fehlerausgabe einschalten
      http://php-de.github.io/jumpto/leitf...ngssituation-1
      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


      • #4
        und wenn ich es so mache:
        Code:
         <tr>
        <td>
        <input type="hidden" name="Produktlinie" value="Präzisionsteile">
        </td>
        </tr>
        bekomme ich ne weiße Seite
        Gut, der HTML-Teil ist sicher nicht ausschlaggebend dafür, daß Du ne weiße Seite bekommst.
        Der Fehler wird auf PHP-Seite liegen.

        Erstes Vorgehen sollte das ErrorReporting sein, worauf meine Vorredner bereits hingewiesen haben.

        Weiterhin kannst Du natürlich auch die Spalten direkt belegen:
        PHP-Code:
            `irgendwas` = 'irgendwas' 
        , dazu benötisgt Du kein bindValue().

        Dann weiß ich nicht, ob es einfach nur unvollständig kopiert ist oder ob Du bei der letzten Zuweisung tatsächlich mit einem Komma abschliesst:
        Code:
        `kalenderwoche` = :kalenderwoche,
        Das quittiert der MySQL-Server natürlich mit einem Fehler.
        Ich könnte mir vorstellen, daß sich dieser Fehler eingeschlichen hat, als Du versucht hast die weiteren Input-Felder mit einzbeziehen...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Arne Drews Beitrag anzeigen
          Gut, der HTML-Teil ist sicher nicht ausschlaggebend dafür, daß Du ne weiße Seite bekommst.
          Der Fehler wird auf PHP-Seite liegen.
          doch sobald ich dies eingebe.
          Code:
           <tr>
          <td>
          <input type="hidden" name="Produktlinie" value="Präzisionsteile">
          </td>
          </tr>
          Kapier ich nicht.

          Nach <?php
          [CODE)error_reporting(-1);
          ini_set('display_errors', 1);
          error_reporting(1); // PHP Fehlermeldungen anzeigen (0/1)[/CODE]


          Trotzdem weiße Seite
          http://www.krassevideos.net
          http://www.mein-neues-iphone.de
          http://www.webkatalog.es

          Kommentar


          • #6
            Pah das ist der Fehler:

            Code:
            <tr>
            <td>
            <input type='hidden' name='Produktlinie' value='Präzisionsteile'>
            </td>
            </tr>
            Statt " muß ich ' einsetzen.

            Allerdings kommt dann beim Abschicken ein Fehler beim Eintragen.
            Das ist aber dann ein anderes Thema, da wahrscheinlich ich dies so nicht in die DB eintragen kann.
            http://www.krassevideos.net
            http://www.mein-neues-iphone.de
            http://www.webkatalog.es

            Kommentar


            • #7
              Das ist mit Sicherheit nicht der Fehler!
              Beide Varianten sind möglich, DoubleQuotes für HTML-Attribute sind aber konform.

              Nochmal: Die weiße Seite kann nichts mit HTML zu tun haben, das liegt immer an Deinem PHP-Script!
              Es sei denn, den HTML-Code gibst Du mit echo aus, aber davon schreibst Du hier nix!

              Poste doch mal das ganze Script, damit man evtl. den Fehler sieht.

              btw.: Hast Du nun error_reporting( 1 ) oder error_reporting( -1 )
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Zitat von Arne Drews Beitrag anzeigen
                Nochmal: Die weiße Seite kann nichts mit HTML zu tun haben, das liegt immer an Deinem PHP-Script!
                Es sei denn, den HTML-Code gibst Du mit echo aus, aber davon schreibst Du hier nix!
                Ockhams Rasiermesser sagt: Tut er/sie.

                „Weiße Seite“ ist ja häufig ein Parse-Error, also ein Syntaxfehler im PHP-Code. Dagegen hilft es nichts, das Error-Reporting im Skript passend einzustellen, weil der Fehler auftritt, bevor die entsprechende Codezeile ausgeführt wird.

                In hausls Link ist dazu auch ein Absatz:

                Parserfehler treten auf, bevor das Skript ausgeführt wird. Daher kann das Reportverhalten im fehlerhaften Skript nicht über ini_set() beeinflusst werden. Auf dem Entwicklungsserver sollten hierfür die Parameter display_startup_errors und/oder error_log in der php.ini gesetzt werden.
                Man findet die Fehler auch, wenn man die PHP-Datei lintet, also die Syntax checken lässt. Auf der Konsole:

                Code:
                $ php -l file.php
                Viele Editoren und IDEs bieten dafür einen Shortcut an oder machen das automatisch beim Schreiben des Codes.

                Zitat von tonkelz
                Code:
                error_reporting(1); // PHP Fehlermeldungen anzeigen (0/1)
                tl;dr: -1 ist richtig.

                Ne, die Funktion erwartet nicht „an“ und „aus“ beziehungsweise 0/1, sondern ein Bit-Feld, also eine ODER-Kombination von Flags.

                - http://de2.php.net/manual/en/functio...-reporting.php

                Und die binäre Repräsentation von -1 ist?

                Genau:

                PHP-Code:
                var_dump(decbin(-1));
                // string(64) "1111111111111111111111111111111111111111111111111111111111111111" 
                Das heißt, wenn du -1 an die Funktion übergibst, ist jedes mögliche Bit gesetzt. Das heißt so viel wie „alles an“.

                Ab PHP 5.4 (nicht früher) kannst du dafür auch error_reporting(E_ALL); verwenden.

                Steht auch alles in der Doku.

                Wenn du nur 1 übergibst, bedeutet das so viel wie error_reporting(E_ERROR);.

                - http://de2.php.net/manual/en/errorfunc.constants.php

                Kommentar


                • #9
                  Da hat er 'nen Rausch gehabt, der mermshaus...
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar

                  Lädt...
                  X