dbquery object in select statement umwandeln?
am 09.11.2010 - 11:19 Uhr in
Hallo,
hier ein Anfaenger zu Drupal und Datenbanken :)
Meine Frage waere folgendes: Ich habe zwei datenbanken mit (meistens) gleichen Tabellen. Ich moechte den Inhalt einer Tabelle eines Datenbanks mit dem von dem Anderen ersetzen.
Mein Code sieht folgendermassen aus:
db_set_active('default');
$query_development = db_query("SELECT * FROM table_name");
//hier kommt viel anderes Kram und spaeter moechte ich folgendes anstellen
db_set_active('staging');
db_query("DELETE FROM table_name");
db_query("INSERT INTO table_name $query_development");In der letzten Zeile muss am Ende (wo $query_development steht) ein select-statement kommen. Nun habe ich die select-statement aber nur in Form eines objektes ($query_development), was ich frueher von einem "db_query("SELECT....")" von der default datenbank bekommen habe. Aber diese vorgehensweise scheint nicht zu funktionieren. Habt ihr Vorschlaege fuer mich?
Gruesse
P.S: Ich bin ziemlich neu fuer sowohl Drupal wie auch Datenbanken. Das bitte beruecksichtigen :)
- Anmelden oder Registrieren um Kommentare zu schreiben

Warum speicherst du die
am 09.11.2010 - 12:02 Uhr
Warum speicherst du die Select-Anweisung nicht einfach in einer Variable?
<?php
db_set_active('default');
$sql = "SELECT * FROM table_name";
$query_development = db_query($sql);
//hier kommt viel anderes Kram und spaeter moechte ich folgendes anstellen
db_set_active('staging');
db_query("DELETE FROM table_name");
db_query("INSERT INTO table_name $sql");
?>
db_set_active('staging'); sch
am 09.11.2010 - 12:18 Uhr
db_set_active('staging');schaltet ja um in ein anderes Datenbank. Ich moechte, dass es von "default" Datenbank selektiert wird und nicht von "staging" Datenbank.
Uebrigens, ich habe in einem
am 09.11.2010 - 12:22 Uhr
Uebrigens, ich habe in einem Datenbank-Tool folgende Anweisung als Bespiel ausprobiert, was eigentlich ganz gut klappt:
INSERT INTO staging.content_field_hcard_email SELECT * FROM default.content_field_hcard_email
Nun wenn ich aber das Gleiche in meinem Code in db_query() reinhaue, funktioniert es leider nicht.
db_query("INSERT INTO staging.content_field_hcard_email SELECT * FROM default.content_field_hcard_email");Eigentlich war das das Befehl was ich brauche, aber warum funktioniert es in db_query Methode nicht? Darf man nicht alle mysql Befehl in db_query ruhig anwenden?