anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 10:58

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So 29 Jan, 2006 16:17 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Wichtig:
Bevor du weiterliest, vergewissere dich, dass du PHP 5 und die mysqli-Erweiterung zur Verfügung hast.

Ob das zu überprüfen, kannst du folgenden Code ausführen:

[php]if(function_exists("mysqli_connect")) echo "Ja, ich darf weiterlesen";
else echo "Nein, ich darf nicht weiterlesen";[/php]

Ergebnis erfolgreich? Dann mache sofort ein BackUp der common.php und der dbwrapper.php, bevor du weiterliest!

Einbau:

Öffne common.php, Suche:

[php]link = db_connect($DB_HOST, $DB_USER, $DB_PASS) or die (db_error($link));
db_select_db ($DB_NAME) or die (db_error($link));
define("LINK",$link);[/php]

Und ersetze vollständig mit:

[php]db_connect($DB_HOST,$DB_USER,$DB_PASS,$DB_NAME);[/php]
Save & Close.

Öffne dbwrapper.php, Suche:

[php]function db_query($sql){
// [...]
return $r;
}[/php]
Ersetze mit

[php]function db_query($sql)
{
global $session,$dbqueriesthishit,$dbtimethishit,$mysql_object;
$dbqueriesthishit++;
$dbtimethishit -= getmicrotime();

$r = $mysql_object->Query($sql);

$dbtimethishit += getmicrotime();
return $r;
}[/php]

Suche (Falls nicht vorhanden, einfach einfügen):
[php]function db_insert_id($sql){
// [...]
return $r;
}[/php]
Ersetze mit
[php]function db_insert_id()
{
global $mysql_object;
$dbtimethishit -= getmicrotime();

$r = $mysql_object->insert_id;

$dbtimethishit += getmicrotime();
return $r;
}[/php]

Suche:
[php]function db_error($sql){
// [...]
return $r;
}[/php]
Ersetze mit
[php]function db_error()
{
global $mysql_object;

$errno = $mysql_object->Errno;
$error = $mysql_object->Error;
$r = "<strong>Datenbankfehler!</strong><br>Fehler Nummer #".$errno.", Meldung: <br>".$error;
return $r;
}[/php]

Suche:
[php]function db_fetch_assoc($sql){
// [...]
return $r;
}[/php]
Ersetze mit
[php]function db_fetch_assoc($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();

$r = $result->Fetch_Assoc();
$dbtimethishit += getmicrotime();
return $r;
}[/php]

Suche:
[php]function db_num_rows($sql){
// [...]
return $r;
}[/php]
Ersetze mit
[php]function db_num_rows($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();

$r = $result->num_rows;

$dbtimethishit += getmicrotime();
return $r;
}[/php]

Suche:
[php]function db_affected_rows($sql){
// [...]
return $r;
}[/php]
Ersetze mit
[php]function db_affected_rows($link=false){
global $dbtimethishit,$mysql_object;
$dbtimethishit -= getmicrotime();

$r = $mysql_object->affected_rows;

$dbtimethishit += getmicrotime();
return $r;
}[/php]

Suche:
[php]function db_connect($sql){
// [...]
return $r;
}[/php]
Ersetze mit
[php]function db_connect($host,$user,$pass,$database){
global $dbtimethishit,$mysql_object;

$dbtimethishit -= getmicrotime();
$mysql_object = new MySQLi($host,$user,$pass,$database);

$dbtimethishit += getmicrotime();
}[/php]

Suche:
[php]function db_free_result($sql){
// [...]
return $r;
}[/php]
Ersetze mit
[php]function db_free_result($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();

$r = $result->Free();
$dbtimethishit += getmicrotime();
return $r;
}[/php]

Speichern und Testen!

Achtung: Diese Erweiterung sollten wirklich nur Erfahrenere Programmierer einsetzen, da die mysqli-Erweiterung noch experimentell ist!!

Ein Beispiel noch:
Kämpferliste, 25 User, mit Standart: 0.08 Sekunden
Mit Dieser Erweiterung: 0.01 Sekunden
*gg*

Quelle:
http://ch.php.net/manual/de/ref.mysqli.php


Zuletzt geändert von Eliwood am So 03 Dez, 2006 22:35, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 29 Jan, 2006 16:38 
Offline
Meister
Meister

Registriert: So 30 Okt, 2005 07:44
Beiträge: 322
Wohnort: Heilbronn
LoGD: http://www.ryu.dragonlegacy.de/source.php
Also sehr ratsam für server mit vielen usern.... ;)

_________________
Zitat:
Wir sind Menschen, Trolle, Zwerge, Elfen und sonstige Wesen - ABER KEINE SKLAVEN!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 29 Jan, 2006 18:05 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Death Lord hat geschrieben:
Also sehr ratsam für server mit vielen usern.... ;)

-Nö dem stimm ich nicht ganz zu, es kann bereits Auswirkungen haben bei wenigen. Es müssen nicht immer xxx viele sein. Mach dir nen Benchmark dann siehst bereits ne Wirkung bei wenigen Datensätzen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 02 Feb, 2006 20:11 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
[php]
function db_fetch_assoc($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();

$r = $result->Fetch_Assoc();
$dbtimethishit += getmicrotime();
return $r;
}
[/php]

funktioniert bei mir nur mit:

[php]
function db_fetch_assoc($result){
global $dbtimethishit;
$dbtimethishit -= getmicrotime();

$r = $result->Fetch_Assoc;
$dbtimethishit += getmicrotime();
return $r;
}
[/php]

mfg

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 03 Feb, 2006 16:12 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Seltsam...
Laut PHP-Net:

Zitat:
class mysqli_result {

array fetch_assoc ( void )

}


Ist das ne Funktion... Na ja, wahrscheinlich eine der Nebensymptome der ständigen weiter entwicklung ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 02 Dez, 2006 22:59 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 18 Jun, 2006 18:38
Beiträge: 179
Wohnort: Herne
LoGD: http://www.mystara-logd.net/source.php
Fatal error: Trying to clone an uncloneable object of class mysqli in /is/htdocs/wp1054914_R0CVX3A1A2/www/mystara/dbwrapper.php on line 97

function db_connect($host,$user,$pass,$database){
global $dbtimethishit,$mysql_object;

$dbtimethishit -= getmicrotime();
$mysql_object = new MySQLi($host,$user,$pass,$database);

$dbtimethishit += getmicrotime();
}

kann mir einer sagen wieso ich ein ja bekomme es aber dennoch nicht funzt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 02 Dez, 2006 23:31 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 15 Okt, 2005 14:06
Beiträge: 864
Geschlecht: Männlich
LoGD: http://shinobilegends.com
Wäre an mysqli Erweiterung auch interessiert, in 1.1.1 wirds unterstützt, sind lib-files da btw.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Dez, 2006 14:55 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
@ azraeldemon: PHP-Version?

@ Nightborn: Ich habe ja Chris die Funktionen geschickt... ;)
Und ansonsten komm ich nicht draus, was du sagen willst *g*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Dez, 2006 21:25 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 18 Jun, 2006 18:38
Beiträge: 179
Wohnort: Herne
LoGD: http://www.mystara-logd.net/source.php
@ eliwood : habe php version 5.1.5 laufem auf dem server!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Dez, 2006 21:48 
Offline
Großmeister
Großmeister

Registriert: Fr 01 Jul, 2005 18:41
Beiträge: 484
Wohnort: Saarbrücken
Geschlecht: Männlich
In der php.ini 'zend.ze1_compatibility_mode' auf OFF setzen. Dann muesste es klappen.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 03 Dez, 2006 21:59 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
Mir ist beim Überfliegen ne KLeinigkeit aufgefallen^^

[php]function db_insert_id()
{
global $mysql_object;
$dbtimethishit -= getmicrotime();

$r = $mysql_object->insert_id;

$dbtimethishit += getmicrotime();
return $r;
}[/php]
da müsste
[php]global $mysql_object, $dbtimethishit;[/php]
stehen^^


und noch was (is nicht soo wichtig, aber egal^^)
[php]function db_query($sql)
{
global $session,$dbqueriesthishit,$dbtimethishit,$mysql_object;
$sql = get_cache($sql);
$dbqueriesthishit++;
$dbtimethishit -= getmicrotime();

$r = $mysql_object->Query($sql);

$dbtimethishit += getmicrotime();
return $r;
} [/php]
ist das [php]global $session[/php]
eigentlich überflüssig...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Dez, 2006 22:53 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 11 Feb, 2006 19:39
Beiträge: 596
Wohnort: Stuttgart - Waiblingen
Geschlecht: Männlich
LoGD: http://logd.legend-of-vinestra.de/source
Skype: da-chosen-one
Zitat:
Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in /is/htdocs/wp1037182_J4AY65IMLD/www/logd/durscripts.php on line 6
Datenbankfehler!
Fehler Nummer #, Meldung:


Dieser Fehler existiert nun, seit ich dieses Update gemacht habe. Ist mein Wohnviertel...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Dez, 2006 23:33 
Offline
Großmeister
Großmeister

Registriert: Fr 01 Jul, 2005 18:41
Beiträge: 484
Wohnort: Saarbrücken
Geschlecht: Männlich
Eigentlich könntest du das doch aus deiner houses.php ausklammern und dann muesste es wieder gehen öö'

[php]
require_once("durscripts.php");
adddbfieldifne("accounts","housesleep","INT (10) unsigned","housekey");
adddbfieldifne("houses","housepic","TEXT","description");
adddbfieldifne("houses","vacationlock","TINYINT (4) unsigned","status");
adddbfieldifne("furniture","furnpic","TEXT","description");
adddbfieldifne("furniture","contributor","TEXT","dkneeded");
[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Dez, 2006 23:43 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 11 Feb, 2006 19:39
Beiträge: 596
Wohnort: Stuttgart - Waiblingen
Geschlecht: Männlich
LoGD: http://logd.legend-of-vinestra.de/source
Skype: da-chosen-one
Taikun14 hat geschrieben:
Eigentlich könntest du das doch aus deiner houses.php ausklammern und dann muesste es wieder gehen öö'

[php]
require_once("durscripts.php");
adddbfieldifne("accounts","housesleep","INT (10) unsigned","housekey");
adddbfieldifne("houses","housepic","TEXT","description");
adddbfieldifne("houses","vacationlock","TINYINT (4) unsigned","status");
adddbfieldifne("furniture","furnpic","TEXT","description");
adddbfieldifne("furniture","contributor","TEXT","dkneeded");
[/php]

Nein, in der "durscripts.php" sind einige Dinge drin, wie z.B. die Straßennamen, etc. Wenn ich "require_once "durscripts.php";" lösche, dann wird mir die houses.php einen Fehler a la "Call to unknown function "blablubb() (<- Ich stehe in durscripts.php)"........" geben...^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Dez, 2006 23:52 
Offline
Großmeister
Großmeister

Registriert: Fr 01 Jul, 2005 18:41
Beiträge: 484
Wohnort: Saarbrücken
Geschlecht: Männlich
Hast recht, hab den Select übersehen... Naja, vielleicht weiss ich morgen mehr, wenn nicht einer schneller is. ( Kannes nirgens was testen wegen php 5 :P )

PS: Versuchs mal mit mysqli_num_fields ..


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 29 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum