paul: script bricht ab - warum??

hallo,

ich habe zahlreiche php-seiten, in denen per include die verbindung zu meiner db eingebunden ist. im include-file steht folgendes:

<?php $conn = mysql_connect("dbsrvXY.de","username","passwort");  
mysql_select_db("datenbank",$conn);  
mysql_set_charset('utf8', $conn);  
?>

in php5 erscheint nur ein weisser bildschirm, wenn ich auf php4 umstelle ebenfalls. wenn ich die letzte zeile, also mysql_set_charset('utf8', $conn); weglasse, funktionierts in php4. in php5 hilft das allerdings auch nichts.

die db-verbindung klappt also, sonst könnte es ja in php4 nicht gehen?!

ausserdem bilde ich mir ein, dass es sogar in php5 schon mal geklappt hat. eigenartig, oder? wie gesagt, ich habe sonst nichts an den scripten geändert!

paul

  1. Hi Paul.

    mysql_set_charset('utf8', $conn);

    
    >   
    > in php5 erscheint nur ein weisser bildschirm, wenn ich auf php4 umstelle ebenfalls.  
      
    PHP 5.was? Schau mal, seit wann es [mysql_set_charset](http://php.net/manual/en/function.mysql-set-charset.php) gibt.  
      
      
    Viele Grüße,  
    der Bademeister
    
    1. hallo bademeister,

      PHP 5.was? Schau mal, seit wann es mysql_set_charset gibt.

      hab ich schon geschaut, ich habe 5.2.6, sollte also klappen...

      p

  2. Hello,

    ich habe zahlreiche php-seiten, in denen per include die verbindung zu meiner db eingebunden ist. im include-file steht folgendes:

    <?php $conn = mysql_connect("dbsrvXY.de","username","passwort");

    mysql_select_db("datenbank",$conn);
    mysql_set_charset('utf8', $conn);
    ?>

    
    >   
    > in php5 erscheint nur ein weisser bildschirm, wenn ich auf php4 umstelle ebenfalls. wenn ich die letzte zeile, also mysql\_set\_charset('utf8', $conn); weglasse, funktionierts in php4. in php5 hilft das allerdings auch nichts.  
    >   
    > die db-verbindung klappt also, sonst könnte es ja in php4 nicht gehen?!  
    >   
    > ausserdem bilde ich mir ein, dass es sogar in php5 schon mal geklappt hat. eigenartig, oder? wie gesagt, ich habe sonst nichts an den scripten geändert!  
      
      
    Es wird wohl eine Fehlermeldung geben, die aber aufgrund der Einstellungen von display\_errors oder anderen nicht dem Client zur Verfügung gestellt wird, sondern nur im Error-Log landet.  
      
    Damit bleibt die Response dann ohne Inhalt.  
    Was sagen die HTTP-Header am Client? Kommt eine Antwort?  
    Was sgat das Error-Log des (Virtual-)Hosts?  
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
    Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>  
      
    
    
  3. Hi!

    <?php $conn = mysql_connect("dbsrvXY.de","username","passwort");

    mysql_select_db("datenbank",$conn);
    mysql_set_charset('utf8', $conn);
    ?>

      
    Deinem gezeigten Code fehlt abgesehen von Ausgabe erzeugenden Anweisungen (von denen ich annehme, das du sie hier nur weggelassen hast) auch jegliche Fehlerbehandlung.  
      
    Fangen wir mit den üblichen Verdächtigen an. Was sagt phpinfo() zu error\_reporting und display\_errors? Ersteres sollte zumindest beim Entwickeln auf E\_ALL stehen (Zahlenwerte der phpinfo()-Ausgabe sind im Handbuch zu finden) und display\_errors auf on. Damit werden schonmal alle PHP-Meldungen angezeigt.  
      
    Die mysql\_\*-Funktionen geben normalerweise keine direkte Fehlermeldung aus, wenn etwas mit der Abarbeitung auf dem MySQL-Server nicht funktioniert hat, sondern über ihren Rückgabewert bekannt, ob ein Fehler auftrat. Das solltest du auswerten und anschließend mysql\_error() nach dem konkreten Wortlaut befragen. Was konkret im Gut- und im Fehlerfall zurückgegeben wird, steht ebenfalls im PHP-Handbuch bei den jeweiligen Funktionsdokumentationen.  
      
    Wenn du jetzt also deinen Code um die Auswertungen erweiterst, ergibt sich dann ein genaueres Bild des Problems?  
      
      
    Lo!
    
    1. hi,

      Wenn du jetzt also deinen Code um die Auswertungen erweiterst, ergibt sich dann ein genaueres Bild des Problems?

      ok, die fehlermeldungen waren off.

      ich hab mal ein testscript geschrieben, und bekomme auch eine fehlermeldung, und zwar:

      Fatal error: Call to undefined function mysql_connect() in D:\domains\blabla\blabla\test.php on line 6

      wenn ich auf php4 umstelle, kommt die fehlermeldung nicht.
      wieso wird die funktion mysql_connect() nicht erkannt in php5??

      mein testscript sieht übrigens so aus:

        
      <?php  
      error_reporting(E_ALL);  
      	ini_set('display_errors','On');  
        
        
      $conn = mysql_connect("dbsrvXY.de","username","passwort");  
      mysql_select_db("datenbank",$conn);  
        
        
      ?>
      

      p

      1. Hi!

        wieso wird die funktion mysql_connect() nicht erkannt in php5??
        laut server-admin ist die mysql.dll ordnungsgemäß installiert...

        Die mysql.dll allein reicht noch nicht. Siehe PHP 5 no longer bundles MySQL client libraries, what does this mean to me? … und MySQL - Installation.

        Lo!

        1. hi,

          Die mysql.dll allein reicht noch nicht. Siehe PHP 5 no longer bundles MySQL client libraries, what does this mean to me? … und MySQL - Installation.

          was müsste also in der phpinfo() alles stehen, damit ich davon ausgehen kann, dass alles richtig installiert ist.
          der admin sagt, er hätte alle pfade in der php.ini kontrolliert. ist das genug? hat er vielleicht was übersehen? ich selbst hab keinen zugriff auf den server, und kenn mich da auch zu wenig aus...

          p

          1. Hi!

            was müsste also in der phpinfo() alles stehen, damit ich davon ausgehen kann, dass alles richtig installiert ist.
            der admin sagt, er hätte alle pfade in der php.ini kontrolliert. ist das genug? hat er vielleicht was übersehen? ich selbst hab keinen zugriff auf den server, und kenn mich da auch zu wenig aus...

            Es ist nicht das PHP, das geändert werden muss sondern die libmysql.dll, die noch passend installiert werden muss. Das steht alle an der zweiten verlinkten Stelle, wie man da vorgehen kann.

            Lo!

    2. ps:
      laut server-admin ist die mysql.dll ordnungsgemäß installiert...