liebewinter: Sql; error bedeutung

Hallo , ich versuche wenn die Kommentar werden eingefüllt , sie werden gezeigt auf der Seite wo sie eingefüllt , wie auch auf andere Datei , die prove_comment.php ,die Code aussiehst so,

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);




class comments {

       private $arrRows;
       private $hope;

  
       


       function CommentToDatabase()
       {
             // Establish connection with MYSQL Server
          try
          {
             $sql = new PDO("mysql:host=localhost;dbname=meine", "root", "pass");
          }
          catch (PDOException $pe)
          {
          echo "<br>Cannot connect to database: " . $pe->getMessage();
            return false;
          }
     
         
 
         
       
          try {
           
               $sql = new PDO("id, name, email, message, datetime, ip");

               $id = $hope;

               $sql = "DELETE FROM mela WHERE id = :id";

               $statement = $connection->prepare($sql);
               $statement->bindValue(':id', $id);
               $statement->execute();

               $success = "User successfully deleted";
           } catch(PDOException $error) {
              echo $sql . "<br>" . $error->getMessage();
         }
        }
       } 
       function printAdminTable() {
             $arrRows = $New -> getMessages() -> $db;
             
             if ( $arrRows ) {
               echo "<table id='user' class='table table-bordered'>
                   . <tr>
                     <th>id</th>
                      <th>name</th>
                      <th>email</th>
                      <th>message</th>
                      <th>datetime</th>
                      <th>ip</th>
                       <th>Delete</th>
                      </tr>";
               



                foreach ( $arrRows as $row ) {
                 echo <<<EOT
                      <tr>
                          <td>{$row['id']}</td>
                          <td>{$row['name']}</td>
                          <td>{$row['email']}</td>
                          <td>{$roe['message']}</td>    
                          <td>{$row['datetime']}</td>
                          <td>{$row['ip']}</td>
                          <td><button type "submit" name="delete" value="{$row['id']}">löschen</button>
                      </tr>
                     
EOT;
             }
             echo '</table>';
              
         } else {
              echo '<p class="error">Hm. $arrRows enthält nichts oder false. Entweder ist die Datenbank noch leer oder da ist was falsch.</p>';
         }            
     }

     

}
$News = new comments();
$News -> CommentToDatabase();
$News -> printAdminTable();

mit sudo tail -n0 -f /var/log/apache2/error.log /var/log/mysql/error.log

bekomme diese Warnung,

PHP Recoverable fatal error: Object of class PDO could not be converted to string in /var/www/html/prove_comment.php on line 49

Auf der Zeile 49, habe,

echo $sql . "<br>" . $error->getMessage();

ich habe noch der Datei classprove.php , die Benutze als Kommentar Verwalter , der Code ist hier

ich weiß nicht wo dieser "User" kommt, kann Bitte jemand Erklärt die Fehler Meldung , Danke !

  1. Hallo liebewinter,

    bekomme diese Warnung,

    PHP Recoverable fatal error: Object of class PDO could not be converted to string in /var/www/html/prove_comment.php on line 49

    Auf der Zeile 49, habe,

    echo $sql . "<br>" . $error->getMessage();
    

    getMessage() liefert ein Array(?), das lässt sich nicht als String ausgeben.

    Bis demnächst
    Matthias

    --
    Pantoffeltierchen haben keine Hobbys.
    ¯\_(ツ)_/¯
    1. Danke für deine Antwort !

      ich weiß das ich Fehler auf meine Code habe ... , ich bin seit eine Woche die versuche eine Lösung zu finde... , kannst du Bitte mit diese Code Hilfe ?

      1. Hallo liebewinter,

        ich weiß das ich Fehler auf meine Code habe ... , ich bin seit eine Woche die versuche eine Lösung zu finde... , kannst du Bitte mit diese Code Hilfe ?

        var_dump($error->getMessage());
        

        Bis demnächst
        Matthias

        --
        Pantoffeltierchen haben keine Hobbys.
        ¯\_(ツ)_/¯
        1. Danke für deine Antwort !

          ich weiß das ich Fehler auf meine Code habe ... , ich bin seit eine Woche die versuche eine Lösung zu finde... , kannst du Bitte mit diese Code Hilfe ?

          Gestern habe gefragt in stackoverflow , aber jemand von ihnen hat meine Frage versteckt , das ist , der Titel mit zwei sätze stehe , aber wenn jemand click der Titel , er schickt auf andere Frage , nicht auf meine Frage... , ich habe zwei mal gefragt , warum haben das gemacht , und bis jetzt habe keine Antwort bekomme...

          Wenn auf stackoverflow.com , in der suche Fenster schreibt "sql php" ,dann gibt zum Newest , auf dieser Scrennshot , kann sehe meine Frage ,

          meine Frage

          Der Titel, How to use CRUD on SQL [duplicate] , wenn jemand click zum der Titel er bringt auf andere Link .....so keine kann meine Frage sehen....

        2. jetzt habe auf der Zeile 49 ,

           echo $sql . "<br>" . var_dump($error->getMessage());
          

          aber bekomme gleiche Warnung...

          PHP Recoverable fatal error: Object of class PDO could not be converted to string in /var/www/html/prove_comment.php on line 49

          1. Hallo liebewinter,

            Ich schrieb nicht :

             echo $sql . "<br>" . var_dump($error->getMessage());
            

            Ich schrieb

            var_dump($error->getMessage());
            

            Bis demnächst
            Matthias

            --
            Pantoffeltierchen haben keine Hobbys.
            ¯\_(ツ)_/¯
            1. Danke , jetzt bekomme auf meine Browser,

              string(24) "invalid data source name" Fatal error: Uncaught Error: Call to undefined method comments::printAdminTable() in /var/www/html/prove_comment.php:97 Stack trace: #0 {main} thrown in /var/www>/html/prove_comment.php on line 97

              1. ich weiß das meine einige Probleme kommt von dieser Code Teil,

                $sql = new PDO("id, name, email, message, datetime, ip");
                
                               $id = $hope;
                
                               $sql = "DELETE FROM mela WHERE id = :id";
                
                               $statement = $connection->prepare($sql);
                               $statement->bindValue(':id', $id);
                               $statement->execute();
                
                               $success = "User successfully deleted";
                

                sie wird gerufen auf der Variable $id (ich habe diese Code in Internet gefunden..), alle Beispiele die gesehen habe , geben die id auf der form , aber ich habe nicht , mein id , ich habe mit phpmyadmin gegeben , so , auf meine Datenbank ... , meine Probleme ist , das ich weiß nicht wie kann der id von dem Datenbank rufen...

  2. Das geht ja ziemlich durcheinander in Deinem Code:

    $sql = new PDO("id, name, email, message, datetime, ip");

    Warum das? Weiter oben hast Du ein PDO Objekt bereits erstellt! Und nun machst Du es wieder kaputt. Wobei mit dem einzigen String als Argument eigentlich eine Fehlermeldung kommen müsste.

    Aber vielleicht kommt diese Zeile ja gar nicht erst beim Interpreter an? Prüf das mal. MFG

  3. bekomme diese Warnung,

    PHP Recoverable fatal error: Object of class PDO could not be converted to string in /var/www/html/prove_comment.php on line 49

    Auf der Zeile 49, habe,

    echo $sql . "<br>" . $error->getMessage();
    

    Das ist nicht die fehlerrelevante Zeile. Vielmehr ist die fehlerrelevante Zeile diese hier:

    $sql = new PDO("id, name, email, message, datetime, ip");
    

    Das hab ich gerade eben nachgestellt und ich erhalte dieselbe Fehlermeldung. Lösung: Code aufräumen!!!

    MFG

    1. Danke für deine Antwort !

      lose nur diese Zeile oder das Ganze,

      try {
                 
                     $sql = new PDO("id, name, email, message, datetime, ip");
      
                     $id = $hope;
      
                     $sql = "DELETE FROM mela WHERE id = :id";
      
                     $statement = $connection->prepare($sql);
                     $statement->bindValue(':id', $id);
                     $statement->execute();
      
                     $success = "User successfully deleted";
                 } catch(PDOException $error) {
                    var_dump($error->getMessage());
               }
      
      1. Hallo,

        lose nur diese Zeile oder das Ganze,

        Ich nehme an, dass du mit "lose" eigentlich "lösche" meinst.

        Du musst verstehen, was dein Code macht.
        Dafür musst du dir einen Plan machen, was wann warum passieren soll. Nach diesem Plan schreibst du dann deinen Code, den du dir auch sinnvoll kommentieren musst.

        Dann kannst du nämlich selbst auch entscheiden, wie du bei einem Fehler vorgehen musst.

        Gruß
        Kalk

        1. Danke für deine Empfehlungen ,

          Meine Probleme sind das ich weiß was Fehler macht, aber nicht die Losungen...

          ich mache Fehler auch weil ich versuche Ähnlich wie hier machen

          Die Code wo steht,

          The DELETE statement is just like SELECT, and we'll check for the $_GET superglobal again. If the proper id is loaded into the URL, PHP will delete that user. public/delete.php

  4. Hallo Joseba,

    es tut mir leid, aber ich gebe auf. Ich kann Dir nicht helfen. Ich habe schon viele Stunden für Dich geschrieben, und es gab kaum Erfolg.

    Du hast schon viel Code gezeigt bekommen, aber kaum etwas davon verstanden. Vielleicht war es zu viel auf einmal. Oder ich kann zu schlecht erklären.

    Ich wünsche Dir alles Gute.

    Rolf

    --
    sumpsi - posui - clusi
    1. Hallo Rolf B,

      Oder ich kann zu schlecht erklären.

      Es scheint vor allem ein Sprachproblem zu sein. Imho sind deine Erklärungen sehr gut verständlich. Im speziellen Fall entwickelte sich aber kaum ein Dialog.

      Bis demnächst
      Matthias

      --
      Pantoffeltierchen haben keine Hobbys.
      ¯\_(ツ)_/¯
      1. Hallo Matthias,

        vielleicht. Ich habe eher den Eindruck, dass ihr Programmieren sehr schwer fällt. Und das bedeutet, dass sie eine ganz andere Betreuung braucht, als das Forum ihr geben kann.

        Rolf

        --
        sumpsi - posui - clusi
        1. Hallo,

          vielleicht. Ich habe eher den Eindruck, dass ihr Programmieren sehr schwer fällt. Und das bedeutet, dass sie eine ganz andere Betreuung braucht, als das Forum ihr geben kann.

          Ich teile deine Einschätzung, habe aber Zweifel, ob du den Namen korrekt vergendert hast...

          Gruß
          Kalk

          1. hast du recht , Joseba ist ein männliche baskische Name .

            Rolf , du hast Recht , mir Fehlt die Fähigkeit um Programiert ..aber auch anderen Sachen ... ,es gibt Sache die Untersturtz brauche , und auch Zeit sie zu begreifen... wie eure Erfahrugen..... Ich möchte die nächste Tagen deinen anderen Posts wieder zu lesen .

            Rolf , braucht du keine Kopf Schmerzen machen , du hast vieeleee mir geholfen , ohne die Untersturtz von diesem Forum , ich wäre nicht , wo Heute bin , Fast meine Webseite Fertig...

            1. Hallo Joseba,

              😳 autsch.

              Nach deutschem Sprachgefühl klingt der Name weiblich. Das hätte ich besser mal nachgeschaut. Ich war überzeugt, dass Du eine Frau bist

              Fast meine Webseite fertig...

              Hmmm. Nach dem, was Du bisher gezeigt hast, fehlt noch einiges. Sobald sie online ist, kannst Du uns ja mal einen Link darauf geben.

              Rolf

              --
              sumpsi - posui - clusi