Ankündigung

Einklappen
Keine Ankündigung bisher.

vollständiges MySQLi-Query ausgeben

Einklappen

Neue Werbung 2019

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

  • vollständiges MySQLi-Query ausgeben

    Hallo,

    ich verwende folgenden Code, um ein MySQLi-Query (mit Prepare-Methode) abzusetzen:
    PHP-Code:
    $db = new mysqli$dbserver$dbuser$dbpword$dbname );
    $db->query("SET NAMES 'utf8'");
    // check database connection
    if ( mysqli_connect_errno() == )
    {
        
    //database-query
        
    $entry $db->prepare
        
    ('
            INSERT INTO `'
    .$table.'` 
            (`regdate`, `regOnline`, `lastname`, `surname`, `street`, `zipcode`, 
                `land`, `city`, `phone`, `email`, `donation`, `donationreceipt`, 
                `firsttime`, `notice`, `gender`, `birthday`, `lodgingid`, `mealid`, `forumid`,
                `standoflife`, `serviceid1`, `serviceid2`, `earlybooker`) 
            VALUES (now(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
        '
    );
            
    $entry->bind_param'isssissisiiisssiiiiiii'
            
    $regOnline$lastname$surname$street$zipcode$land$city$phone$email$donation
            
    $donationreceipt$firsttime$notice$gender$birthday$lodgingid$mealid$forumid
            
    $standoflife$service1$service2$earlybooker
            
    );
        
    $entry->execute(); 
    ....... 
    Da ich mit der Prepare-Methode arbeite, gebe ich keinen vollständigen MySQL-Query ein, da dieser im Nachgang erst "zusammengesetzt" wird.
    Ich möchte nun den vollständigen Query, wie er mit execute(); ausgeführt wird, in einer Variablen speichern.

    Wie ist das möglich?

    Gruß maeck

  • #2
    Setz doch einfach den Query-String in einer Variablen ab und mach dann
    PHP-Code:
    $db->prepare($variable); 
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Zitat von Arne Drews Beitrag anzeigen
      Setz doch einfach den Query-String in einer Variablen ab und mach dann
      PHP-Code:
      $db->prepare($variable); 
      Was soll mir das bringen?
      Die Inhalts-Variablen werden doch erst danach ($entry->bind_param) an den Query gebunden, dann habe ich ja wieder einen unvollständigen Query?!

      Kommentar


      • #4
        Verzichte doch auf das Bind! Passiert doch nichts anderes, als daß die Werte in den Query-String eingetragen werden und vermutlich vorher DB-tauglich gefiltert werden.
        Kriegst doch auch ohne bind_param hin und ist auch nicht viel mehr Code...

        Oder Du setzt tatsächlich Deine Query-Basis (die aus dem prepare) in eine Variable und schreibst Dir schnell eine Funktion, die ähnlich wie bind_param die Werte dort einträgt. Dann müßtest Du auch haben, was Du willst...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Hm... hiernach
          Is there any way to print the actual query that mysqli->execute() makes? - Stack Overflow
          bietet mysqli das nicht.
          [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
          [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

          Kommentar


          • #6
            Scheint so zu sein ... schade.

            Diese Funktion habe ich noch gefunden, mit der es zu realisieren wäre:
            How to echo a MySQLi prepared statement? - Stack Overflow

            Gruß maeck

            Kommentar


            • #7
              Zitat von maeck
              Diese Funktion habe ich noch gefunden, mit der es zu realisieren wäre:
              How to echo a MySQLi prepared statement? - Stack Overflow
              Kommt dem ziemlich nahe, findste nicht:
              Zitat von Arne Drews
              Oder Du setzt tatsächlich Deine Query-Basis (die aus dem prepare) in eine Variable und schreibst Dir schnell eine Funktion, die ähnlich wie bind_param die Werte dort einträgt.
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar

              Lädt...
              X