Autor |
Nachricht |
paulii-
Threadersteller
Dabei seit: 21.06.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 21.06.2008 18:54
Titel daten von Oracle DB in MySql speichern |
|
|
also ich hab mal das geschrieben...führt aber zur Fehlermedung:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/s08fstboerAT2/public_html/site/userC.php on line 23
mein Code ist dieser:
<?php
//Verbindungsaufbau mit Oracle
$oracle_db = OCILogon($benutzer, $Pw, $or_host);
//Verbindungsaufbau mit Mysql
$connect = mysql_connect($mysql_host,$benutzer,$Pw)
or die ("keine Verbindung möglich: " .mysql_error());
if(!$oracle_db){
echo 'Verbindungsaufbau zur Datenbank fehlgeschlagen:';
}
$oracle_query = 'SELECT p.nickname, p.password FROM player p';
$stm = oci_parse($oracle_db, $oracle_query);
oci_execute($stm, OCI_DEFAULT);
while($row = oci_fetch_array($stm, OCI_NUM)){
$query = "insert into fe_users values ('" . $row[0]"','". $row[1]"')";
$result = $db->query($query);
if (§result)
echo $db->affected_rows. 'User erfolgreich in die Datenbank eingetragen.';
}
?>
Die Verbindungen funktionieren...hab alles extra ausprobiert. Will jetzt Daten aus der Oracle DB in Mysql DB kopieren...
Habs mals so versucht, vielleicht weiß ja jemand einen anderen Weg.
Danke
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Sa 21.06.2008 18:57
Titel
|
|
|
oci_execute($stm, OCI_DEFAULT);
Ich glaub da fehlen die "" hinten...
|
|
|
|
|
Anzeige
|
|
|
paulii-
Threadersteller
Dabei seit: 21.06.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 21.06.2008 19:08
Titel
|
|
|
also die Fehlermeldung ergibt sich in Zeile 23 wo: $query = "insert into fe_users values ('" . $row[0]"','". $row[1]"')";
steht...
|
|
|
|
|
zeitgeisty
Dabei seit: 20.02.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Sa 21.06.2008 19:38
Titel
|
|
|
paulii- hat geschrieben: | also die Fehlermeldung ergibt sich in Zeile 23 wo: $query = "insert into fe_users values ('" . $row[0]"','". $row[1]"')";
steht... |
Probiers doch erstmal mit einer simplen Abfrage, wo Du Dir sicher sein kannst, dass die Syntax ok ist. Ansonsten versuch auch mal
$query = "INSERT INTO 'fe_users' VALUES ('" . $row[0]"','". $row[1]"')";
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Sa 21.06.2008 20:07
Titel
|
|
|
Richtig. SQL Syntax wird generell schonmal immer groß geschrieben. Dazu musst du eben die Hochkommatas beachten, die teilweise notwendig sind. Sind die Inhalte richtig gesetzt?
EDIT: Fehler gefunden, denke ich:
Code: | $query = "insert into fe_users values ('" . $row[0]"','". $row[1]"')"; |
sollte so lauten:
Code: | $query = "insert into fe_users values ('" . $row[0] . "','" . $row[1] . "')"; |
Du hast weitere Verknüpfungspunkte vergessen.
Zuletzt bearbeitet von Smooth-Graphics am Sa 21.06.2008 20:09, insgesamt 2-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst So 22.06.2008 00:38
Titel
|
|
|
Zitat: | also die Fehlermeldung ergibt sich in Zeile 23 wo: $query = "insert into fe_users values ('" . $row[0]"','". $row[1]"')";
steht... |
Das istn stinknormaler PHP-Syntaxfehler, dazu fällt einem dann nur ein: Read the f§"%" Manual!!! Ich les' dir doch hier nicht die Doku vor und übersetze dir Standardfehlermeldungen. Vielleicht doch zur kurzen Erklärung: T_CONSTANT_ENCAPSED_STRING ist der Typ eines Tokens, dass der PHP-Tokenizer beim parsen des Scripts an dieser Stelle nicht erwartet. Hintergrund: PHP macht wie jeder andere Compiler nix anders, als alle bekannten syntaktischen Elemente eines Dokuments in einer Baumstruktur abzulegen. Wenn der Parser nun den Baum durchläuft und ein Token findet, dass nicht zum vorangegangen Token passt, gibts ne Meldung. Weiß man das, kann man auch auf den Fehler schließen.
Dass "SQL-Kommandos" (häh? Schlüsselwörter, Funktionen, oder was?) generell GROSS geschrieben werden, ist vollkommener Quark. Viel sensibler reagiert mancher SQL-Parser bspw. auf Whitespaces hinter ( Ausdrücken ), der Rest ist ihm aber vollkommen latte. Trotzdem: Der Lesbarkeit halber kann man sich da durchaus auf etwas einigen, bspw. Schlüsselwörter wie INSERT oder SELECT groß zu schreiben.
Code: | $query = "insert into fe_users values ('" . $row[0] . "','" . $row[1] . "')"; |
ist scheiße. besser (weil besser lesbar):
Code: | $query = "insert into fe_users values ('{$row[0]}','{$row[1]}')"; |
Oder noch besser: PDO und preparedStatements verwenden, das nimmt dir dann auch das escaping ab.
|
|
|
|
|
|
|
|
Ähnliche Themen |
[php / mysql] Mysql Daten in php als Link ausgeben
Daten aus MySql auslesen
Javascript in Mysql DB speichern
[PHP, MySQL] Fließkommazahlen speichern - how to?
[mysql/php] array speichern
Daten aus mysql Datenbank laden
|
|