Kundenimport - Bankdaten

Ich lese Kundendaten eines alten Shops im CSV-Format aus und importiere die Daten auf DB-Ebene in einen OXID CE 4.2.0.

Allerdings klappt der Import der Bankdaten nicht mit Umlauten (z.B. im Namen der Bank). Ohne Umlaute werden die Bankdaten korrekt im Adminbereich angezeigt. Waren Umlaute im Spiel gibts einen SQL-Syntax Fehler im Bereich des encodierten Strings.

Der Code bildet die Funktionalität aus OXID ab. Evtl. fehlt da noch eine Kleinigkeit, damit es mit den Umlauten klappt.


$aDynvalues = array (
	"lsbankname" => utf8_encode($tmp['BANKNAME']),
	"lsblz" => utf8_encode($tmp['BLZ']),
	"lsktonr" => utf8_encode($tmp['KONTO']),
	"lsktoinhaber" => utf8_encode($tmp['KONTOINHABER']));

$tmpDynvalues = oxUtils::getInstance()->assignValuesToText($aDynvalues);
$tmpDynvalues = oxStr::getStr()->htmlspecialchars($tmpDynvalues, ENT_QUOTES, "UTF-8");
$sPaymentKey = oxUtils::getInstance()->strRot13( 'fq45QS09_fqyx09239QQ' );
$sEncodedValue = oxDb::getDb()->getOne( "select encode( " . oxDb::getDb()->quote( $tmpDynvalues ) . ", '" . $sPaymentKey . "' )" );

$sql = "INSERT INTO `oxuserpayments` (
	`OXID`,
	`OXUSERID`,
	`OXPAYMENTSID`,
	`OXVALUE`) VALUES(
	'".$this->getOXID()."',
	'".$tmpOxUserID."',
	'".$tmpPaymentOXID."',
	'".$sEncodedValue."');";

$oRs = oxDb::getDb()->Execute($sql);

[QUOTE=h-erm;18739]Waren Umlaute im Spiel gibts einen SQL-Syntax Fehler im Bereich des encodierten Strings[/QUOTE]
Welcher SQL-Fehler?

[QUOTE=avenger;18758]Welcher SQL-Fehler?[/QUOTE]

Im Fall, dass der Bankname einen Umlaut enthält (z.B. Ostsächsische Sparkasse), bekomme ich folgende Fehlermeldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Uæ,“í¾À϶ˆ«;¼ã-zOE§XwÃú¿}¦YEÙs1')' at line 9

Mit Bankdaten ohne Umlaute im Banknamen oder im Kontoinhaber funktioniert es tadellos.

Mit welchen Zeichencodierungen laufen den die Beiden Systeme?

Es lag letztlich nicht an den Umlauten, auch diverse Kontonummer führten zu einem falschen SQL-Statement. Nach der Integration in eine Adminfunktion innerhalb des Shops und der Verwendung des oxpayment-Objekts hat es funktioniert.