Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Funktionsvariablen mit Autowert

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Funktionsvariablen mit Autowert

    Hallo,
    weiß nicht genau wie ich es formulieren soll...
    Ich hab mir eine Datenbanklasse geschrieben und dort eine Methodeeingefügt um den Zeichensatz der Datenbankverbindung zu ändern:
    PHP-Code:
        public function setCharset($charset 'uft8')
        {
            
    $this->_mysqliObject->set_charset($charset);

            return 
    $this;
        } 
    Wenn ich nun also ein Objekt erstelle und damit dann ein Datenbankabfrage mache, sind die Zeichensätze nicht in Ordnung (obwohl ich ganz am Anfang den Zeichensatz mit dieser Funktion geändert habe):
    PHP-Code:
    $db->setCharset(); 
    Wenn ich nun aber folgendes mache ist der Zeichensatz in Ordnung:
    PHP-Code:
    $db->setCharset('uft8'); 
    Kann mir das jemand erklären ?

    Kollation laut phpmyadmin: utf8_general_ci.

    Grüße

  • #2
    Glaub ich nicht. Du hast bestimmt woanders nen Denkfehler.

    Kommentar


    • #3
      uft8 ist jedenfalls Unsinn (vermutlich Tippfehler!)

      Kommentar


      • #4
        LOL, glatt übersehen. Das würde jedenfalls was erklären

        Kommentar


        • #5
          Glaub ich nicht. Du hast bestimmt woanders nen Denkfehler.
          Hab ich natürlich auch zuerst gedacht, konnte aber dummerweise keinen finden...

          PHP-Code:
          $db->setCharset() 
          => Geht nicht

          PHP-Code:
          $db->setCharset('utf-8'
          => Geht nicht

          PHP-Code:
          $db->setCharset('utf8'
          => Funktioniert

          uft8 ist jedenfalls Unsinn (vermutlich Tippfehler!)
          MySQL :: MySQL 5.1 Reference Manual :: 9.1.13 Character Sets and Collations That MySQL Supports

          Dort wird der Charset ebenfalls mit utf8 und nichts utf-8 angeben (falls du das meinst). Und mit utf8 funktionierts im Gegensatz zu utf-8.


          Grüße

          Kommentar


          • #6
            uft8 ist jedenfalls Unsinn (vermutlich Tippfehler!)

            Kommentar


            • #7
              Ach verdammt !!! Das erklärt natürlich einiges -.-
              Kopf->tisch...

              Ich hab mir das heute bestimmt schon 20mal angesehen und habs einfach nicht geschnallt...

              Ok danke, damit sollte dieses Phänomen geklärt sein.
              Danke!

              Edit:
              Das sollte solche Probleme in Zukunft vermeiden:
              PHP-Code:
              if (!in_array($charset, array(
                          
              'big5''dec8''cp850''hp8''koi8r''latin1''latin2''swe7',
                          
              'ascii''ujis''sjis''hebrew''tis620''euckr''koi8u''gb2312',
                          
              'greek''cp1250''gbk''latin5''armscii8''utf8''ucs2''cp866',
                          
              'keybcs2''macce''macroman''cp852''latin7''cp1251''cp1256',
                          
              'cp1257''binary''geostd8''cp932''eucjpms'
                      
              ), true)){
                          throw new 
              DatabaseException('Unbekannter Zeichensatz');
                      } 

              Kommentar


              • #8
                D'oh!

                Kommentar

                Lädt...
                X