2017-07-19 4 views
0

Nach vielen Recherchen bin ich immer noch auf ein Problem fest.Daten UTF-8 zum Einfügen auf latin1_swedish_ci Tabelle MYSQl

Zuerst,
Ich habe versucht, einige Daten in eine Datenbank einzufügen, indem Sie die Abfrage aus einer PHP-Datei generieren, die aber nicht funktionierte.

Also versuche ich manuell die Abfrage auf PHPMyAdmin auszuführen und es hat funktioniert. Dann begann ich meine Forschung und die größtmögliche Erklärung, die ich fand, ist, dass meine Kodierung nicht die gleiche ist.

Meine Informationen sind UTF-8 und meine Tabelle latin1_swedish_ci aber ein sehr schlechtes Problem erscheint, ich kann die Datenbank nicht ändern. :(

So, jetzt Ich suche einen Weg, UTF-8-latin1_swedish_ci in meiner PHP Datei zu konvertieren.

Ich hoffe, dass jemand eine Lösung zu finden, helfen könnte, oder könnte meine Forschung orientieren.

Hier ist mein Code

function insertGrp($rawData) 
{ 
    //Format data form best use 
    $data = self::formatFormData($rawData); 
    $insertGrpReq ="INSERT INTO `fwsgup` (`KGROUP`, `KUSER`, `KDATES`, `FDATEE`, `PSPY`) VALUES ('"; 
    //First part of request 
    $groups = $data["userGroup"]; 
    //Separator for concat 
    $separator = "', '"; 
    //Instance of db 
    $db = new DBInteract(); 
    //foreach group needed to be removed 
    foreach($groups as $group) 
    {  
     //converting dates for database 
     $tmp = strtotime($group[1]); 
     $startDate =date('Ymd', $tmp); 

     $tmp = strtotime($group[2]); 
     $endDate =date('Ymd', $tmp); 

     //DEBUG for see query 
     //output example INSERT INTO `fwsgup` (`KGROUP`, `KUSER`, `KDATES`, `FDATEE`, `PSPY`) VALUES ('gAdmin', 'fana', '20170619', '20190619', '20171907133741faan'); 
     print($insertGrpReq.$group[0].$separator.$data["userInfo"]["userID"].$separator.$startDate.$separator.$endDate.$separator.date("YdmHis")."faan');</br>"); 
     //here's my problem 
     $db->query($insertGrpReq.iconv("UTF-8", "ISO-8859-1", $group[0]).$separator.iconv("UTF-8", "ISO-8859-1", $data["userInfo"]["userID"]).$separator.iconv("UTF-8", "ISO-8859-1", $startDate).$separator.iconv("UTF-8", "ISO-8859-1", $endDate).$separator.iconv("UTF-8", "ISO-8859-1//TRANSLIT", date("YdmHis")).iconv("UTF-8", "ISO-8859-1", "faan")); 
    } 

} 

Hier ist der Tisch

CREATE TABLE FWSGUP ( KGROUP varchar(16) NOT NULL, KUSER varchar(16) NOT NULL, KDATES int NOT NULL, FDATEE int, PSPY varchar(24), CONSTRAINT Q_CCVDPRD_FWSGUP_KGROUP_00001 PRIMARY KEY (KGROUP,KUSER,KDATES) )

+1

Ich mische latin1_swedefic_ci mit utf-8 die ganze Zeit, haben Sie irgendwelche Sonderzeichen in Ihrer Datenbank? – HoogleyBoogley

+0

Welche Probleme treten auf? Könnten Sie sie präsentieren? – MinistryofChaps

+0

@HoogleyBoogley ja ich habe einige è oder é – Jackob

Antwort

0

iconv() wandelt Zeichenfolgen von einer Codierung in die andere um.

iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text); 
+0

Ich habe es versucht, aber es funktioniert nicht, gibt es eine andere Möglichkeit, es zu konvertieren? – Jackob

+0

Welchen Fehler bekommen Sie? Können Sie mir ein Beispiel dafür geben, was Sie konvertieren möchten? –

+0

ich Fehler nicht haben :(Ich habe ein Beispiel auf dem Pfosten – Jackob

Verwandte Themen