| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |

11-05-2011, 09:34
|
|
meskalin
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 33
|
|
fenler beim insert
ich will dasten von einen file in die oscommerce products tabelle füllen
aber das insert klappt nicht und ich finde denm fehler nicht.
das schema:
Zitat:
name typ null erlaubt
products_id int(11) Nein auto_increment
products_quantity int(4) Nein
products_model varchar(12) Ja NULL
products_image varchar(64) Ja NULL
products_price decimal(15,4) Nein
products_date_added datetime Nein
products_last_modified datetime Ja NULL
products_date_available datetime Ja NULL
products_weight decimal(5,2) Nein
products_status tinyint(1) Nein
products_tax_class_id int(11) Nein
manufacturers_id int(11) Ja NULL
products_ordered int(11)
|
erster versich keine fehlermeldung aber nix wird gepeichert:
Code:
<?php
include 'vars.php';
echo "connecting to ".$db_host."<br> ".$db_user."<br>".$db_password."<br>".$db_name."<br>";
$dbObj = new mysqli($db_host, $db_user, $db_password,$db_name);
$row = 1;
$handle = fopen ("data.csv","r");
while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) {
$num = count ($data);
print "<p> $num fields in line $row: <br>\n";
If ($row<=1){
print $data[0] . "<br>\n";
print_r($data);
$stmt = mysqli_stmt_init($dbObj);
$sql = "INSERT INTO products (products_id ,products_quantity ,products_image ,products_price,
products_date_added, products_weight, products_status,products_tax_class_id )
VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
echo "foo <br>";
if ($stmt = $dbObj->prepare($sql)) {
if (!$stmt) {
die( $db->error);
} echo "foo <br>";
$stmt->bind_param("iisisii", $row, 1, $data[4],$data[3], date('Y-m-d H:i:s', $unix_timestamp), 1, 1 );
$stmt->execute();
if (!$stmt->execute()) {
die( $stmt->error);
}
$stmt->close();
$dbObj->close();
}
}
$row++;
}
fclose ($handle);
?>
2ter versuch bekomm Error, insert query failed
Code:
<?php
include 'vars.php';
echo date('Y-m-d H:i:s', $unix_timestamp);
echo "connecting to ".$db_host."<br> ".$db_user."<br>".$db_password."<br>".$db_name."<br>";
$con = mysql_connect($db_host, $db_user, $db_password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$row = 1;
$handle = fopen ("data.csv","r");
while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) {
$num = count ($data);
print "<p> $num fields in line $row: <br>\n";
If ($row<=1){
print $data[0] . "<br>\n";
print_r($data);
mysql_select_db("osc", $con);
mysql_query("INSERT INTO products (products_id ,products_quantity ,products_image ,products_price, products_date_added,
products_weight, products_status, products_tax_class_id )
VALUES (".$row.", 1, ".$data[4].",".$data[3].", ".date('Y-m-d H:i:s', $unix_timestamp).", 1, 1 );")
or die(mysql_error());
echo "foo <br>";
}
$row++;
}
fclose ($handle);
?>
Geändert von meskalin (11-05-2011 um 13:09 Uhr)
Grund: neuer code
|

11-05-2011, 11:12
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.311
|
|
Bitte sofort den Quellcode umbrechen!  Kein Mensch scrollt gerne kilometerweit nach rechts.
Danke
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

11-05-2011, 11:21
|
|
medium22
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 306
|
|
Ersetze..
PHP-Code:
or die('Error, insert query failed');
durch...
PHP-Code:
or die(mysql_error());
und dir wird gesagt wo der Fehler liegt - auch wenn man ihn eigentlich auf anhieb sieht.
|

11-05-2011, 13:12
|
|
meskalin
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 33
|
|
bekomm jetzt die meldung
Zitat:
|
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 '01:00:00, 1, 1 )' at line 3
|
irgendwas am datetime feld schein nicht zu passen den fehlenden beistrich bei products_tax_class_id hab ich schon ergänzt.
|

11-05-2011, 13:17
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.311
|
|
Du weißrt aber schon, dass bestimmte Dinge in Hochkommata gesetzt werden müssen?
Code:
INSERT INTO bla (id, num, product) values(1, 5, 'blubb blubber');
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

11-05-2011, 16:42
|
|
meskalin
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 33
|
|
thx jetzt gehts
Geändert von meskalin (11-05-2011 um 16:46 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|