Guten Tag,
ich möchte wie der Titel schon sagt eine csv Datei hochladen, bearbeiten und importieren.
Das Script sieht wie folgt aus:
Die Zeilen
sollen die Sonderzeichen bearbeiten - ich weiß ich sollte auf noch mehr achten aber es tut ja noch nicht einmal mit diesen 2 Umstellungen.
Wenn ich die Datei nun ausführe kommt 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 ' , '', '', '', ' at line 75603
Ich kann es mir eigentlich nicht erklären. Kann mir jemand den Fehler aufzeigen?! Es ist wahrscheinlich nur eine Kleinigkeit die ich alla "den Wald vor lauter Bäumen nicht sehen" nicht finde?!
ich möchte wie der Titel schon sagt eine csv Datei hochladen, bearbeiten und importieren.
Das Script sieht wie folgt aus:
PHP-Code:
include('../inc/mysql.inc.php');
$db = mysql_connect($sql['host'],$sql['uid'],$sql['psw']) or die ("Keine Verbindung zu der Datenbank möglich.");
mysql_select_db($sql['db'], $db);
$fp = file_get_contents('ProductData.csv');
$fp = str_replace('"', '\"', $fp);
$fp = str_replace('=', '', $fp);
file_put_contents('ProductData_anders.csv', $fp);
$fp = fopen("ProductData_anders.csv", "r");
//Datenbankverbindung besteht
define("Shop", 0);
define("ProductId", 1);
define("ProgramId", 2);
define("MerchantProductNumber", 3);
define("ProductName", 4);
define("ProductPrice", 5);
define("ProductLongDescription", 6);
define("Status", 7);
define("MerchantProductCategory", 8);
define("ZanoxProductCategory", 9);
define("ImageSmallURL", 10);
define("ImageMediumURL", 11);
define("ProductManufacturerBrand", 12);
define("ZanoxProductLink", 13);
define("ZanoxProductCategoryNumber", 14);
define("MerchantProductCategoryNumber", 15);
define("DeliveryTime", 16);
define("TermsOfContract", 17);
define("ProductEAN", 18);
define("ProductPriceOld", 19);
define("CurrencySymbolOfPrice", 20);
define("UpdateDate", 21);
define("ValidFromDate", 22);
define("ValidToDate", 23);
define("ProductShortDescription", 24);
define("ImageLargeURL", 25);
$query = "INSERT INTO dtg_shop VALUES ";
while( !feof($fp) ) {
$zeile = fgetcsv ( $fp , 4096 , ";" );
$query .= " ('".$zeile[Shop]."',
'".$zeile[ProductId]."',
".$zeile[ProgramId].",
".$zeile[MerchantProductNumber].",
'".$zeile[ProductName]."',
'".$zeile[ProductPrice]."',
'".$zeile[ProductLongDescription]."',
".$zeile[Status].",
'".$zeile[MerchantProductCategory]."',
'".$zeile[ZanoxProductCategory]."',
'".$zeile[ImageSmallURL]."',
'".$zeile[ImageMediumURL]."',
'".$zeile[ProductManufacturerBrand]."',
'".$zeile[ZanoxProductLink]."',
'".$zeile[ZanoxProductCategoryNumber]."',
'".$zeile[MerchantProductCategoryNumber]."',
'".$zeile[DeliveryTime]."',
'".$zeile[TermsOfContract]."',
'".$zeile[ProductEAN]."',
'".$zeile[ProductPriceOld]."',
'".$zeile[CurrencySymbolOfPrice]."',
'".$zeile[UpdateDate]."',
'".$zeile[ValidFromDate]."',
'".$zeile[ValidToDate]."',
'".$zeile[ProductShortDescription]."',
'".$zeile[ImageLargeURL]."' ),";
}
$query = substr($query, 0, -1);
mysql_unbuffered_query($query) or die(mysql_error());
PHP-Code:
$fp = file_get_contents('ProductData.csv');
$fp = str_replace('"', '\"', $fp);
$fp = str_replace('=', '', $fp);
file_put_contents('ProductData_anders.csv', $fp);
Wenn ich die Datei nun ausführe kommt 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 ' , '', '', '', ' at line 75603
Ich kann es mir eigentlich nicht erklären. Kann mir jemand den Fehler aufzeigen?! Es ist wahrscheinlich nur eine Kleinigkeit die ich alla "den Wald vor lauter Bäumen nicht sehen" nicht finde?!
Kommentar