Quellcode durchsuchen

fix fallback charset handling

test if the fallback is set, do not rely on error code
Arne Hormann vor 12 Jahren
Ursprung
Commit
162e0fbe06
1 geänderte Dateien mit 7 neuen und 2 gelöschten Zeilen
  1. 7 2
      connection.go

+ 7 - 2
connection.go

@@ -48,9 +48,14 @@ func (mc *mysqlConn) handleParams() (err error) {
 		case "charset":
 			charsets := strings.Split(val, ",")
 			for _, charset := range charsets {
+				// ignore errors here - a charset may not exist
 				err = mc.exec("SET NAMES " + charset)
-				if err != nil {
-					return
+				if err == nil {
+					var value []byte
+					value, err = mc.getSystemVar("character_set_connection")
+					if string(value) == charset {
+						break
+					}
 				}
 			}