Page 1 of 2

cms datenbankzugriff?

Posted: Wed Aug 11, 2010 3:05 pm
by NashBridges
hi
irgendwie find ich im forum keine lösung bzw anleitung für mein problem:

ich möchte über xajax inhalte meiner datenbank einbinden (die tabellen liegen in der gleichen DB wie das CMS selbst, mit anderem präfix). wie xajax grundsätzlich funktioniert weiß ich, und ich weiß auch wie das im grunde zu programmieren wäre, aber ich habe mir gedacht, daß, nachdem das CMSms ja bei jeden seitenaufbau auf die datenbank zugreift, ich die datenbank-verbindung des CMS hernehmen könnte, um meine SQL-statements abzusetzen und mit xajax zu handeln.

allerdings hab ich keine ahnung wie ich auf die entsprechenden php-variablen zugreifen soll bzw. welche funktion ich aufrufen muß um ein query abzusetzen. gibts dazu vielleicht irgendwo ein tutorial (ich hab zumindest nix gefunden)? oder kann mir das jemand kurz erklären?

danke
lg
christian

Re: cms datenbankzugriff?

Posted: Wed Aug 11, 2010 3:32 pm
by cyberman
Hilft dir das weiter ;)?

Code: Select all

global $gCms;

echo '<pre>';
print_r($gCms->GetDb());
echo '</pre>';

Re: cms datenbankzugriff?

Posted: Wed Aug 11, 2010 3:51 pm
by NashBridges
jo des hilft mal ein bissl :)

wie setz ich jetz nen query ab?

wohl so in der art :

$db = $gCMS->getDb();
$result=$db->execute($query);

oder? gibts irgendwo eine übersicht welche methoden die klasse $gCMS zur Verfügung stellt?

Re: cms datenbankzugriff?

Posted: Wed Aug 11, 2010 4:12 pm
by cyberman
Zuvor musst du dir noch $gCMS holen ;)

Code: Select all

global $gCms;
$db = $gCMS->getDb();
$result=$db->execute($query);

Re: cms datenbankzugriff?

Posted: Wed Aug 11, 2010 7:48 pm
by NashBridges
ok danke, werd mal ein bissl rumspielen... der rest ist eh klar mit $result etc...
würd mich dennoch interessieren obs irgendwo eine API gibt oder sowas ähnliches wo man nachlesen kann, welche funktionen $gCms zur Verfügung stellt... :)
lg

Re: cms datenbankzugriff?

Posted: Wed Aug 11, 2010 9:17 pm
by NaN
Die steht bei Cyber in der Signatur.
Kann man aber dank des neuen Layouts nicht mehr lesen (das max-height muss da aus den Styles raus).

http://www.cmsmadesimple.org/apidoc/

Re: cms datenbankzugriff?

Posted: Wed Aug 11, 2010 9:24 pm
by NashBridges
ja weltklasse!!! danke!
coole sache, jetzt gehts los!! :)

Re: cms datenbankzugriff?

Posted: Thu Aug 12, 2010 11:02 am
by NashBridges
hey

noch ne frage... was ist besser

Code: Select all

$db=$gCms->getDB();
oder

Code: Select all

$db = &$gCms->db;
lg

Re: cms datenbankzugriff?

Posted: Thu Aug 12, 2010 12:27 pm
by NaN
Ich persönlich bin dafür:

Code: Select all


$db =& $this->GetDb(); // Bei Modulen

$db =& $gCms->GetDb(); // Bei anderen Scripten

;)

Die Funktion GetDb() macht in beiden Fällen im Grunde auch nichts weiter als $gCms->db zurückzugeben ;)

Re: cms datenbankzugriff?

Posted: Thu Aug 12, 2010 1:08 pm
by NashBridges
is klar aber der unterschied ist die call-by-reference, also das & davor...

und da is eben die frage was besser is :)
thx

Re: cms datenbankzugriff?

Posted: Thu Aug 12, 2010 1:33 pm
by NaN
Ich bin kein Programmierer.
Nach meinem Verständnis wäre bei größeren Datenmengen call by reference besser. Spart Speicher.
Allerdings habe ich gerade gelesen, dass das bei PHP die Performance verringern kann. Call-by-value soll wohl schneller verarbeitet werden können.
Ich kenne mich damit aber nicht so genau aus. Meistens kopiere ich einfach den Code der Entwickler. Die werden schon wissen was sie machen (hoffe ich ;) )
Und wenn es um die DB geht, habe ich meistens die call-by-reference Methode gesehen.

Re: cms datenbankzugriff?

Posted: Thu Aug 12, 2010 1:45 pm
by NashBridges
ich bin einer, der nie mit den references gearbeitet hat, war auch nie nötig, weils eh auch mit value funktioniert.
ich denk die datenmenge bei der DB selber ist egal, da das Objekt der DB_connection immer gleich groß ist. der gedanke, das per call-by-ref zu machen kam mir nur deshalb, weil ich nicht in jeder php-datei (und das werden doch einige sein) eine eigene variable mit dem gesamten objekt ablegen will... so hab ich ja nur den adressbereich einer variablen zugewiesen und nich das objekt "verdoppelt", welches durch CMSms ja eh schon existiert.
daher glaub ich, daß in diesem fall call-by-ref besser ist, auch wenn das CMS vll bei call-by-val aufrufen bessere performance zeigt (was mich aber wundert ehrlichgsagt).
naja... wär jedenfalls mal interessant was die programmierer dazu sagen, wo und wann sich call-by-ref und wann sich call-by-val anbietet...

ich machs derweil mal per call-by-ref, hab das eh so gekapselt, daß ichs jederzeit schnell umstellen kann (include("Dbenv.php") :) )

Re: cms datenbankzugriff?

Posted: Thu Aug 12, 2010 1:53 pm
by hlf
Innerhalb von Plugins oder Funktionen in denen $smarty zur verfügung steht ist dieser Zugriff am schnellsten:

$smarty->_tpl_vars['gCms']->db->Execute 

Re: cms datenbankzugriff?

Posted: Sat Aug 14, 2010 9:18 pm
by cyberman
NaN wrote: Die steht bei Cyber in der Signatur.
Kann man aber dank des neuen Layouts nicht mehr lesen
Danke für den Hinweis - war mir noch gar nicht aufgefallen.

Re: cms datenbankzugriff?

Posted: Sat Aug 14, 2010 9:19 pm
by cyberman
hlf wrote: Innerhalb von Plugins oder Funktionen in denen $smarty zur verfügung steht ist dieser Zugriff am schnellsten:

$smarty->_tpl_vars['gCms']->db->Execute 
Das liebe ich an Smarty - selbst nach längerer (laienhafter) Beschäftigung damit isses immer noch für eine Überraschung gut ;).