Problem mit Skript bei Umstellung von PHP5.6 auf PHP7

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

  • phppower
    antwortet
    Umstellung auf php 7

    also ich hab da auch ne etwas wo ich nicht mit klar komme bei der Umstellung habe soweit fast alles umstellen können aber mit 3 Zeilen bin ich etwas überfordert

    PHP-Code:
    if(!$id){$id $QUERY_STRING;}
    if(!
    $y && !$n && !$do){dcnt($id);}else{dvcnt($id$n$y);} 
    PHP-Code:
    if(!$n && !$y){ 
    könnte mir da jemand einen Lösungsansatz zeigen zumindest den Wegzur Umstellung

    Danke

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    so, nun wird alles ausgegeben, etwas unstrukturiert zwar, aber damit kann ich arbeiten. ich schau mal wie weit ich kommen.

    vielen dank, nun bin ich zumindest ein bisschen h3ll(3r) als zuvor

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Hier ist wohl mysqli oder der MySQL-Server zu mitteilungsbedürftig. Du kannst das Error-Reporting etwas runter schrauben:

    PHP-Code:
    mysqli_report(MYSQLI_REPORT_ERROR MYSQLI_REPORT_STRICT); 

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    wenn ich die Verbindung zur DB in die Funktion nehme, dann verarbeitet er die Funktion und es gibt folgenden Fehler:

    Code:
    [B]Fatal error[/B]:  Uncaught mysqli_sql_exception: No  index used in query/prepared statement SELECT * FROM comments WHERE  tutorialid='1' ORDER BY date in  /home/p4xch/public_html/riddle/50/inc_rate.php:126 Stack trace: #0 /home/p4xch/public_html/riddle/50/inc_rate.php(126):  mysqli_query(Object(mysqli), 'SELECT * FROM c...') #1 /home/p4xch/public_html/riddle/50/index.php(34): getComments('1') #2 {main}   thrown in [B]/home/p4xch/public_html/riddle/50/inc_rate.php[/B] on line [B]126[/B]
    Zuletzt geändert von wheelie; 04.07.2018, 13:45.

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    Zitat von h3ll Beitrag anzeigen
    Dann wird die Funktion wohl gar nicht ausgeführt.
    ich denke auch, verstehe aber nicht, wieso die nicht ausgeführt wird.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Zitat von wheelie Beitrag anzeigen
    egal, wo ich den Code in der Funktion getComments setze, es gibt keine Ausgabe. Ausserhalb der Funktion gibt es die Ausgabe NULL.
    Dann wird die Funktion wohl gar nicht ausgeführt.

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    teste ich $con hier:

    PHP-Code:
    var_dump($con);

    function 
    getComments($tutid){ 
    ist die Ausgabe:

    Code:
    object(mysqli)#1 (19) {   ["affected_rows"]=>   int(0)   ["client_info"]=>   string(79) "mysqlnd 5.0.12-dev - 20150407 - $Id:  b5c5906d452ec590732a93b051f3827e02749b83 $"   ["client_version"]=>   int(50012)   ["connect_errno"]=>   int(0)   ["connect_error"]=>   NULL   ["errno"]=>   int(0)   ["error"]=>   string(0) ""   ["error_list"]=>   array(0) {   }   ["field_count"]=>   int(0)   ["host_info"]=>   string(25) "Localhost via UNIX socket"   ["info"]=>   NULL   ["insert_id"]=>   int(0)   ["server_info"]=>   string(14) "5.6.39-cll-lve"   ["server_version"]=>   int(50639)   ["stat"]=>   string(153) "Uptime: 756800  Threads: 6  Questions: 253913407  Slow  queries: 227  Opens: 1318713  Flush tables: 1  Open tables: 65536   Queries per second avg: 335.509"   ["sqlstate"]=>   string(5) "00000"   ["protocol_version"]=>   int(10)   ["thread_id"]=>   int(3546202)   ["warning_count"]=>   int(0) }
    test ich hier:

    PHP-Code:

    function getComments($tutid){

    var_dump($con); 
    Ist die Ausgabe NULL.

    Aber vielleicht muss das ja so sein.

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    ich glaube die Verbindung zur DB geht verloren. wenn ich $con in der Funktion teste, ergibt sie NULL.
    hier zur besseren Übersicht die ganze Struktur:

    PHP-Code:
    <?php

    $db_hostname 
    "localhost";  //usually "localhost be default"
    $db_username "xxx";  //your user name
    $db_pass "xxx";  //the password for your user
    $db_name "xxx";  //the name of the database


    mysqli_report(MYSQLI_REPORT_ALL);  



    $con mysqli_connect($db_hostname$db_username$db_pass$db_name);


    // Check connection

    if (mysqli_connect_errno()){


      echo 
    "Failed to connect to MySQL: " mysqli_connect_error();

                  }


    function 
    getComments($tutid){

    var_dump($con);


        
    $sql="SELECT * FROM comments WHERE tutorialid='$tutid' ORDER BY date";


        if (
    $result=mysqli_query($con,$sql))
          
        {



          
    // Fetch one and one row
        
          
    while ($row=mysqli_fetch_row($result))


            {
            
    printf ("%s (%s)\n",$row[0],$row[2]);
            }


          
    // Free result set
          
    mysqli_free_result($result);
      }

     
        else


        
    var_dump($result);


                }
    Zuletzt geändert von wheelie; 04.07.2018, 13:29.

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    ich hab die funktion zum testen so formuliert:

    PHP-Code:
    function getComments($tutid){



        
    $sql="SELECT * FROM comments WHERE tutorialid='$tutid' ORDER BY date";


        if (
    $result=mysqli_query($con,$sql))
          
        {



          
    // Fetch one and one row
        
          
    while ($row=mysqli_fetch_row($result))


            {
            
    printf ("%s (%s)\n",$row[0],$row[2]);
            }


          
    // Free result set
          
    mysqli_free_result($result);
      }

     
        else


        
    var_dump($result);


                } 
    wenn ich mit meinen bescheidenen VBA Kenntnissen das richtig sehe, kommt er in der Schlaufe nur zum var_dump, wenn die if Kondition nicht erfüllt ist.

    So gibt die Funktion NULL aus. Ich gehe davon aus, dass die Schlaufe nach if nicht durchlaufen wird.

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    egal, wo ich den Code in der Funktion getComments setze, es gibt keine Ausgabe. Ausserhalb der Funktion gibt es die Ausgabe NULL.

    Ich glaube die Funktion getComments wird nicht richtig verarbeitet.

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    ich nehme an, der Aufruf
    PHP-Code:
        var_dump($result); 
    muss im Code an der Stelle kommen, nachdem die Variable zum ersten Mal auftrat, oder?
    Ich kann es nicht nach dem Eröffnungstag des PHP codes setzen?
    Wenn ich das mache ist die Ausgabe NULL.

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    danke. ich habs hier eingesetzt:

    PHP-Code:
        var_dump($result); 

          
    // Free result set
          
    mysqli_free_result($result); 
    müsste etwas auf dem Bildschirm erscheinen? es erscheint nichts.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    var_dump($result);

    Einen Kommentar schreiben:


  • wheelie
    antwortet
    Zitat von h3ll Beitrag anzeigen
    Was steht in $result drin?
    vielen Dank für die Rückfrage, ich bin dafür sehr dankbar.

    wie kann ich den Inhalt ausgeben? mit
    PHP-Code:
    echo $result
    oder mit

    PHP-Code:
    echo mysqli_info($result); 
    bringt beides nichts.
    Zuletzt geändert von wheelie; 04.07.2018, 12:39.

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Was steht in $result drin?

    Einen Kommentar schreiben:

Lädt...
X