mmofacts.com

Mysql_fetch_array

gepostet vor 17 Jahre, 8 Monate von Kapsonfire
/edit
gibt es eine möglichkeit die function "mysql_fetch_array" mit einer .php datei die includet wird zu ändern, so dass man das nicht für den ganzen server machen muss?
gepostet vor 17 Jahre, 8 Monate von Kapsonfire
just edited
gepostet vor 17 Jahre, 8 Monate von Crafty-Catcher
Ich glaube er will
mysql_fetch_array() mit einer neuen - seiner eigenen Funktion überschreiben, indem er vor dem Aufruf eine Datei einbidet die sowas enthält:
 function mysql_fetch_array(){echo'bla'}

gepostet vor 17 Jahre, 8 Monate von Kapsonfire
bingo
geht das?
gepostet vor 17 Jahre, 8 Monate von Frostbringer
Ich glaube er fragt nach einer Möglichkeit, eine Funktion zu überladen. Also das nicht mehr die mitgelieferte Version aufgerufen wird, sondern seine eigene. Stimmt das?
edit: Zu spät ^^. Würde gern diesen Beitrag löschen, aber geht nicht.
gepostet vor 17 Jahre, 8 Monate von Rylor
Original von Browser-Games World
bingo
geht das?

Gegenfrage: Wozu sollte das gut sein?
gepostet vor 17 Jahre, 8 Monate von Kapsonfire
geht das oder nicht? wozu ist doch uninteressamt...... es geht um versionskonflikte
gepostet vor 17 Jahre, 8 Monate von BlackHornet
wie wärs mit ausprobieren??
Edit: Ich denke aber mal, daß die funktion, wie alle php core functions final sind. hab bisher nie was über überschriebene pjp funktionen gehört
gepostet vor 17 Jahre, 8 Monate von Störti
Mir wär neu wenn man in PHP irgendetwas überladen könnte (ok, eine Ausnahme sind geerbte Methoden bei OOP PHP5).
gepostet vor 17 Jahre, 8 Monate von Toby
Es geht nicht und wäre auch kritisch, wenns denn gehen würde.
Fatal error: Cannot redeclare mysql_fetch_array() in test.php on line 2
Sonst könnte man auch seine eigenen Funktionen überschreiben... *grusel*
Wenn man solche Funktionalität will, sollte man halt Layers hernehmen und das ganze abstrahieren.
gepostet vor 17 Jahre, 8 Monate von Klaus
Nimm dafür doch eine eigene Funktion.
my_fetch_array($result);

function my_fetch_array($result)
{
if(version_compare(phpversion(), "4.0.6") == -1)
// älter als z.B. 4.0.6 -> eigene funktion benutzen
else
return mysql_fetch_array($result);
}
gepostet vor 17 Jahre, 8 Monate von Kapsonfire
schade muss ich ja umcoden *kotz*
gepostet vor 17 Jahre, 8 Monate von Klaus
Suchen&Ersetzen?
gepostet vor 17 Jahre, 8 Monate von Störti
Dann bau dir aber gleich ne eigene DB-Klasse, mit der du auf die Datenbank zugreifst. Wenn du irgendwann feststellst, dass dir mysql_query auch nicht gefällt, kannst du einfach deine DB-Klasse ändern...
gepostet vor 17 Jahre, 8 Monate von Kapsonfire
es geht darum das seitdem serverumzug ein paar kleine bugs vorhanden sind
gepostet vor 17 Jahre, 8 Monate von Störti
Warum du das machst/machen willst ist mir ja egal, nur wenn dann mach es gleich richtig und ersetze nicht eine einzelne PHP-MySQL-Funktion durch eine andere sondern bau dir gleich eine DB-Klasse, in der du wirklich alles so individuell machen kannst, wie du willst und nicht immer den gesamten Code durchforsten musst, wenn mal wieder ein Fehler auftritt...
gepostet vor 17 Jahre, 8 Monate von woodworker
also 1. mysql_fetch_array ist ne sehr schlechte funktion, entweder mysql_fetch_assoc oder mysql_fetch_row
und 2. ja es geht, aber nur mit einer PHP Extension namens APD und die entsprechenden Funktionen heissen override_function oder rename_function
gepostet vor 17 Jahre, 8 Monate von progs
es geht darum das seitdem serverumzug ein paar kleine bugs vorhanden sind

Dine die Bugs am Script oder direkt an PHP/Server? Wenn am Server, dann würde ich lieber versuchen, dort das Problem zu lösen, anstatt das mit irgendwelche PHP-Funktionen zu umgehen. Bringt mehr.
Ansonsten kann ich dir auch nur zur DB-Klasse raten.
gepostet vor 17 Jahre, 8 Monate von Rylor
Ich würd dir auch raten eine eigene Datenbankklasse zu schreiben. Ich benutze auch eine, ist übersichtlicher und man kann die eigenen Bedürfnisse leichter erfüllen.
Rylor
gepostet vor 17 Jahre, 8 Monate von Freshman
vor allem kannst du wenn du eine eigene Datenbankklasse schreibst
auch ohne probleme das Datenbanksystem ändern.
Nun stell dir vor, dass du auf einmal nicht mehr mysql sondern postgres haben willst. Dann sollte es einfach sein das System zu ändern.
Wenn du für alles eine Funktion hast, und diese Funktion die Verarbeitung übernimmt, egal welche Datenbank dahinter ist, dann ist es doch nur gut.

//Function to handle database errors.
function db_error($query, $errno, $error)
{
die('' . $errno . ' - ' . $error . '
' . $query . '
[STOP]
');
}
//Function to query the database.
function db_query($query, $link = 'db_link')
{
global $$link;
$result = mysql_query($query, $$link) or db_error($query, mysql_errno(), mysql_error());
return $result;
}
//Get a row from the database query
function db_fetch_array($db_query)
{
return mysql_fetch_array($db_query, MYSQL_ASSOC);
}
//The number of rows returned from the query.
function db_num_rows($db_query)
{
return mysql_num_rows($db_query);
}
so nach dem Schema habe ich das gelöst.
Hier wäre es einfach, wenn ich ein anderes Datenbanksystem nutzen will, da ich einfach nur eine andere Klasse nutzen muss.
gepostet vor 17 Jahre, 8 Monate von Dead Silence
Oder einfach PDO benutzen. Benötigt allerdings PHP5.
gepostet vor 17 Jahre, 8 Monate von Todi42
Original von Freshman
//Get a row from the database query
function db_fetch_array($db_query)
{
return mysql_fetch_array($db_query, MYSQL_ASSOC);
}

In dem Fall würde aber der Kommentar nicht zur Funktion passen,
gepostet vor 17 Jahre, 8 Monate von Freshman
das stimmt wohl.
Ich verändere manchmal einfach funktionen...
Wann die Kommentare mitgeändert werden steht meist in den Sternen
das war wohl vorher ein mysql_fetch_row

Auf diese Diskussion antworten