Willkommen in der Webstatt Zum Webstatt Blog und Stories
BNightSpeeder am 28.01.07 15:45

Hi,

hab heute mal versucht die Klasse hier zu verstehen und hab die dann schön abgetippt.

Nun fand ich es unpraktisch jedes mal sowas zu machen:

$mysql = new DB_MySQL;
$mysql->connect('localhost', 'test', 'root', '');
$mysql->query('SELECT spalte FROM tabelle');
$row = $mysql->fetchRow());


Und hab mir überlegt wie man die connection nur einmal schreiben muss, dan ist sowas rausgekommen:

//SQL Query/Befehl ausführen
public function query ($query, $conn) {
if (is_resource($conn->connection)) {

if (is_resource($conn->result)) {
mysql_free_result($conn->result);
}

$conn->result = mysql_query($query, $conn->connection);
}

}


Somit reduziert sich der Code, da man an das Ende jedes Querys einfach durch ein zweites Argument angibt welche Connection man will.

//Verbindung herstellen
$mysql = new DB_MySQL;
$mysql->connect("localhost", "internetiv", "root", "pass");

//Ausgeben
$conf_1_mysql -> query ("SELECT * FROM data WHERE id='1'", $mysql);
$row = $conf_1_mysql->fetchRow();

$conf_2_mysql -> query ("SELECT * FROM page_title WHERE id='1'", $mysql);
$row2 = $conf_2_mysql->fetchRow();


Soweit so gut, nur leider kommt mir nun ein Fehler daher der mir sowas erzählt:

Quote
Fatal error: Call to a member function query() on a non-object in K:\Programme\xampp\htdocs\www\design\config.inc.php on line 6


Das wären dan die Zeilen mit der Variable "$conf_1_mysql".
Doch ich sehe keinen Fehler.

Mfg. BNS

netcup.de Warum gibt es hier Werbung?
nuit nuit am 28.01.07 15:57

$conf_1_mysql

wo ist das als object definiert

mit $conf_2_mysql genau das gleiche ;)



andere frage? was ist bei dir komfortabler, du musst 1. Parameter mehr übergeben...super :D das kannste dir auch sparen ;)

Al3x0r Al3x0r am 28.01.07 15:58

Wenn du das Objekt so ausrufst

$mysql = new DB_MySQL;

Kannst du nicht aufeinmal deine queryfunktion so aufrufen:

$conf_1_mysql->query ("SELECT * FROM data WHERE id='1'", $mysql);

Das müsste gehen:

$mysql->query ("SELECT * FROM data WHERE id='1'", $mysql);

Du greifst ja auf eine Funktion im Objekt deiner Mysql Klasse zu, die in $mysql hinterlegt ist.

mfg Alex

edit:// nuit war schneller... mist

BNightSpeeder am 28.01.07 16:00

Ah, klar. thx.

nuit nuit am 28.01.07 16:00

aber kuck mal...du übergibst das $mysql....speicher die connection doch intern in er klasse :D

class MySql {
private $conn;

public function query ( $query ) {
print $this->conn;
}
}


edit: wenn du $conn->connection aufrufst, dann machst du einen aufruf in deine eigene klasse über aussen??? hääääh? das ist ein enormer unweg...nur so nebenbei

BNightSpeeder am 28.01.07 16:07

OK, werde es nochmal überdenken, aber noch eine Frage wie gebe ich dan die results aus?

Mit
$row->Spaltenname;
geht es nicht.

nuit nuit am 28.01.07 16:09

es gibt noch was anderes als fetch_object ;D

mysql_fetch_assoc($this->result);

->siehe hier

du kannst es entweder über:
$row['spaltenname'] oder $row[\d] ausgeben :D

BNightSpeeder am 28.01.07 16:20

Quote
Original von nuit
es gibt noch was anderes als fetch_object ;D

mysql_fetch_assoc($this->result);

->siehe hier


Du meinst doch: $row = mysql_fetch_row($this->result);

Quote

du kannst es entweder über:
$row['spaltenname'] oder $row[\d] ausgeben :D


z.B. $row['design']; geht nicht, es wird bei keiner Spalte etwas ausgegeben.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt