Hallo,
ich habe folgendes Problem:
Ich will ein XML in die Datenbank konvertieren.
Später will ich bei einem weiteren Einlesen testen, ob die vorhandenen Daten gleich sind, oder ob die Tabelle aktualisiert werden muss.
Dafür hole ich mir die Werte aus der Tabelle und speicher sie in einem Array.
Das Array wandel in nun in einen String um.
Nun zum Problem: Ich habe 2 scheinbar gleiche Strings, da die Daten sich nciht verändert haben. Jedoch erkennt meine Abfrage einen Unterschied, da mir meine Funktion beim Auslesen aus der Datenbank ein “Leerzeichen” einfügt. Das Leerzeichen ist jedoch kein Leerzeichen, wie man bei meiner funktion str_replace dann feststellen kann.
Was könnte es also sein?? Für Hinweise zur Lösung bin ich mehr als dankbar!!
Hier mein Quellcode :
[php]
//Sucht nach Attributen
$result = $xs->xpath($string);
//Formatierte Ausgabe des Ergebnis-Arrays
//echo “
”;”;
//print_r ($result);
//echo “
//Array wird in kommaseparierten String umgewandelt
$result_string = join(’,’, $result);
echo "Result: “.($result_string).”
";
//Speichert Datenbankeinträge in einem Array
$rows = pg_copy_to($conn, $table_name);
echo “
”;”;
print_r ($rows);
echo “
//Array wird in kommaseparierten String umgewandelt
$rows_string = join(’,’, $rows);
echo "Rows: “.($rows_string).”
";
$rows_string = str_replace(’ ‘,’*’,$rows_string);
echo "Rows2: “.($rows_string).”
";
//$rows_string=“188743731,188743734,188743737”;
//$comp=strcmp($result_string, $rows_string);
//echo ($comp);
$loeschen= “DELETE FROM $table_name”;
//Überprüft, ob Datenbank mit Importdatei identisch ist
IF ($result_string == $rows_string){
ECHO "Identische Einträge schon vorhanden.
";
}
ELSE { //Wenn Daten nicht identisch sind
//Die Einträge der Datenbank werden gelöscht
$vals = pg_query($loeschen);
IF ($vals) {
ECHO "POST-Daten wurden gelöscht!
";
}
ELSE {
ECHO "Aufruf erfolgte mit falschen Angaben
";
}
//Datenbank wird aktualisiert
$vals = pg_copy_from($conn, $table_name, $result);
ECHO "Die Einträge der Tabelle “.$table_name.” wurden aktualisiert!
";
}
[/php]und meine Ausgaben:
Result: 188743731,188743734,188743737
Array
(
[0] => 188743731
[1] => 188743734
[2] => 188743737
)
Rows: 188743731 ,188743734 ,188743737
Rows2: 188743731 ,188743734 ,188743737
POST-Daten wurden gelöscht!
Die Einträge der Tabelle [B][I]extendedattribute[/I][/B] wurden aktualisiert!
Im Voraus schon mal vielen Dank!