mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 16:13 Benutzername: Passwort: Auto-Login

Thema: daten von Oracle DB in MySql speichern vom 21.06.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> daten von Oracle DB in MySql speichern
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

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 21.06.2008 18:57
Titel

Antworten mit Zitat Zum Seitenanfang

oci_execute($stm, OCI_DEFAULT);

Ich glaub da fehlen die "" hinten...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
paulii-
Threadersteller

Dabei seit: 21.06.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 21.06.2008 19:08
Titel

Antworten mit Zitat Zum Seitenanfang

also die Fehlermeldung ergibt sich in Zeile 23 wo: $query = "insert into fe_users values ('" . $row[0]"','". $row[1]"')";
steht...
  View user's profile Private Nachricht senden
zeitgeisty

Dabei seit: 20.02.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 21.06.2008 19:38
Titel

Antworten mit Zitat Zum Seitenanfang

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]"')";
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 21.06.2008 20:07
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst So 22.06.2008 00:38
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.