MYSQL: "Incorrect string value" verhindern

Dragosius

Erfahrenes Mitglied
Hallo,

ich bekomme immer wieder folgende oder ähnliche Fehlermeldung von meiner Software:

Code:
INSERT INTO chat SET c_id=399091992 ,c_an_user='60299758',c_typ='S',c_text='Zeile wird verworfen (Schutz gegen Flooding): ¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø ¤ø,¸¸,ø¤º°`°§,c_von_user_id='0',c_br='erste' -> Incorrect string value: '\xC2' for column `chat`.`c_text` at row 1

Die Spalte ist folgendermaßen angelegt:
Code:
`c_text` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL default ''


Vielen Dank
 

Yaslaw

alter Rempler
Moderator
Das Insert mal formatieren. Die String sgehen immer von ' bis '.
Und so sieht dein SQL aus. Finde den Fehler
SQL:
INSERT INTO chat 
SET 
    c_id=399091992 ,
    c_an_user='60299758',
    c_typ='S',
    c_text='Zeile wird verworfen (Schutz gegen Flooding): ¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø,¸¸,ø¤º°`°º¤øø¤º°`°º¤ø ¤ø,¸¸,ø¤º°`°§,c_von_user_id='
    -- Ab hier ist es kein SQL mehr
    0',c_br='erste' -> Incorrect string value: '\xC2' for column `chat`.`c_text` at row 1
 

Zvoni

Erfahrenes Mitglied
Zeile 6 fehlt der schliessende Apostroph vor dem Komma zum nächsten Feld c_von_user_id..... :)
Womit wir wieder bei der Verwendung von Parametern wären.....
 

Dragosius

Erfahrenes Mitglied
Das kann leider kein generelles Problem sein, denn der Code ist an der Stelle korrekt.

Was ist denn hier falsch?
Da ist meiner Meinung nach alles korrekt gesetzt:
Code:
INSERT INTO chat SET c_id=399098620 ,c_von_user='NoNick4ever',c_typ='N',c_raum='1',c_text='hm.... scheinbar nicht ....',c_farbe='0000AA',c_von_user_id='60300217',c_br='normal' -> Incorrect string value: '\xF0\x9F\x98\x82' for column `mainchat_chat`.`chat`.`c_text` at row 1
 

Zvoni

Erfahrenes Mitglied
SQL:
INSERT INTO chat 
SET c_id=399098620,
c_von_user='NoNick4ever',
c_typ='N',
c_raum='1',
c_text='hm.... scheinbar nicht...',
c_farbe='0000AA',
c_von_user_id='60300217',
c_br='normal' -> Incorrect string value: '\xF0\x9F\x98\x82' for column `mainchat_chat`.`chat`.`c_text` at row 1
welche Eigenschaften hat c_text? Feldlänge usw.
 

Dragosius

Erfahrenes Mitglied
Das habe ich im 1. Beitrag geschrieben. :)
Code:
`c_text` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL default ''
 
Zuletzt bearbeitet:

Dragosius

Erfahrenes Mitglied
Hallo @Zvoni,

du meinst das hier, oder?
Code:
mysqli_set_charset($mysqli_link, "utf8mb4");

Hier wäre noch eine fehlgeschlagene Datenbank-Abfrage:
Code:
INSERT INTO `chat` SET `c_id` = 399129669, `c_von_user` = 'Maikel', `c_typ` = 'N', `c_raum` = '1', `c_text` = '( ͡° ͜ʖ ͡°)', `c_farbe` = '0000FF', `c_von_user_id` = '818439', `c_br` = 'normal' -> Incorrect string value: '\xCD\xA1\xC2\xB0 \xCD...' for column `mainchat_chat`.`chat`.`c_text` at row 1

Kurzer Nachtrag:
Danke für den Link.
Ich habe das SQL-Statement von der dortigen Lösung mal ausgeführt.
 
Zuletzt bearbeitet: