Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt]PHP Version 5.3.0 -> Textausgabe

Einklappen

Neue Werbung 2019

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

  • ewrson
    hat ein Thema erstellt [Erledigt]PHP Version 5.3.0 -> Textausgabe.

    [Erledigt]PHP Version 5.3.0 -> Textausgabe

    Hallo,

    habe ein Problem mit einer Text Ausgabe aus meiner mySQL Datenbank.

    PHP-Code:
    <?php 
        $sqlhost    
    "localhost";
        
    $database    "xxx";
        
    $sqluser    "xxx";
        
    $sqlpass    "xxx";
        
        
    $db         = @new mysqli($sqlhost$sqluser$sqlpass$database);

        
    $result  $db -> prepare("SELECT gb_desc FROM guestbook WHERE gb_id = 13747");
        
    $result  -> bind_result($gb_desc);
        
    $result  -> execute();
        
    $result  -> fetch();
        
    $result  -> close();

        echo 
    nl2br($gb_desc);
    ?>
    Installiert ist die PHP Version 5.3.0 [phpinfo()], der Datenbank Typ für gb_desc ist 'Text'.

    Das Problem ist, dass aber nur 255 Zeichen bei der PHP Ausgabe angezeigt werden.
    In der Datenbank sind es aber 287!

    Muss ich da was in der php.ini anpassen?
    Bin für jede Hilfe dankbar.

    Gruss

  • Dormilich
    antwortet
    dann könntest du immernoch PDO als Alternative nutzen …

    Einen Kommentar schreiben:


  • ewrson
    antwortet
    Ich hab herausgefunden woran es liegt
    Ist ein php 5.3.0 bug -> PHP :: Bug #50021 :: Predefined Statements doesn't allow Strings with more than 256 letters.

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    Textbeispiel? Welcher Teil fehlt?

    Einen Kommentar schreiben:


  • ewrson
    antwortet
    Indem ich den Text aus der Datenbank raus kopiert habe und in einen Texteditor rein kopiert habe.
    Dort werden mir 287 Zeichen angezeigt.

    Einen Kommentar schreiben:


  • Wolla
    antwortet
    In der Datenbank sind es aber 287!
    Wie hast du diese Zahl ermittelt?

    Einen Kommentar schreiben:


  • ewrson
    antwortet
    Zitat von Asterixus Beitrag anzeigen
    Und mb_strlen($string,'utf-8'); ?
    Auch 256

    Einen Kommentar schreiben:


  • Asterixus
    antwortet
    Und mb_strlen($string,'utf-8'); ?

    Einen Kommentar schreiben:


  • ewrson
    antwortet
    Zitat von Chriz Beitrag anzeigen
    Da sollte dein Fehler am PHP-Code und der Validierung liegen.
    Mehr als eine reine nackte Ausgabe kann man doch nicht machen oder?

    Zitat von Chriz Beitrag anzeigen
    Vergleiche mal strlen($gb_desc) mit mb_strlen($gb_desc).
    Bei beiden kommt das Ergebnis 256 !?

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    Stichwort Byte Multibyte. Wenn du für VARCHAR 255 angibst, was erwartest du dann, dass darin gespeichert werden kann, 255 Byte, oder 255 Zeichen? Bei UTF-8 muss die Datenbank eigentlich 4*255 Bytes reservieren, die MySQL tut das soweit ich weiß auch. Und entsprechend viele Bytes kannst du auch in das Feld schreiben. ORACLE nimmt das byteweise. Sprich 254 ASCII-Zeichen und 1 Multibyte-Zeichen (Umlaut z.B.) und dein Umlaut wird zerschnitten.

    Edit: Wenn du TEXT benutzt, sollte es keine Probleme mit 255 geben, erlaubt sind glaube ich 65k Zeichen. Da sollte dein Fehler am PHP-Code und der Validierung liegen. Vergleiche mal strlen($gb_desc) mit mb_strlen($gb_desc).

    Einen Kommentar schreiben:

Lädt...
X