Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Nicaw problem


kakeros141

Rekomendowane odpowiedzi

Opublikowano

Gdy chce zrobić acc wyskakuje mi taki oto błąd:

Fatal error: Uncaught exception 'LibraryMissingException'
Message: MySQL library is not installed. Database access is impossible.
File: sql.php on line: 15
Script was terminated because something unexpected happened. You can report this, if you think it's a bug.

Debug Backtrace:Disabled

 

config.php

<?php 
##################################################
#                 CONFIGURATION                  #
##################################################
# Congratulations on finding configuration file. #
# This is very simililar to config.lua as it     #
# follows same basic principles. Text in between #
# /* */ or starting with # is ignored. Text      #
# values must be 'qouted'. Logical values are    #
# true/false. All statements end with ;          #
##################################################

# Set data directory of your OT server
$cfg['dirdata'] = 'X:/X/X/data';

$cfg['house_file'] = 'world/DBMap-house.xml';

# MySQL server settings
$cfg['SQL_Server'] = 'localhost';
$cfg['SQL_User'] = 'root';
$cfg['SQL_Password'] = '';
$cfg['SQL_Database'] = 'dbko';

# Must correspond to your OTServ configuration
# Options: plain, md5, sha1
$cfg['password_type'] = 'plain';

# Not currently supported by OTServ, leave empty
$cfg['password_salt'] = '';

/*
 * Look skins/ to find out which skins you have
 * Available skins:
 * default - First skin ever created, white
 * swamp - Green skin with swamp theme
 * swamp-mini - Same as swamp.css, but with compact menu
 * dark - Dark version of default.css
 * conquest - Customized skin, renaissance theme
 * essense - Clean skin with green/blue motives
 * inferno - Darker skin with menu on the right
 * silica - Green skin, technology theme
 * Need more? Look http://otfans.net/ and
 * http://sourceforge.net/projects/nicaw-acc/files/
 */
$cfg['skin'] = 'wodboo';

# In case you want to upload skins somewhere else
$cfg['skin_url'] = 'skins/';

/*
 * Captcha is used to prevent automated software from
 * flooding server with accounts
 * GD2 PHP extension is required
 */
$cfg['use_captcha'] = true;

# Secure session will disable 'remember me' box
$cfg['secure_session'] = false;

# Seconds until session expires
$cfg['timeout_session'] = 15*60;

# Maximum number of characters on account
$cfg['maxchars'] = 10;

# Players per highscore page
$cfg['ranks_per_page'] = 50;

# This access and above will not be in highscores
$cfg['ranks_access'] = 2;

# Home page
$cfg['start_page'] = 'notes.php';

# Name shown in window title
$cfg['server_name'] = '*-DBOnline Server';

# Server ip and port for getting status. 
# In most cases localhost should be used
$cfg['server_ip'] = 'TWOJE IP';
$cfg['server_port'] = 7171;

# Allow teleportation to temple?
$cfg['char_repair'] = false;

# Force users to validate their emails when registering?
# For email functions to work, SMTP server must be configured correctly
$cfg['Email_Validate'] = false;

# Allow email based account recovery?
$cfg['Email_Recovery'] = false;

# SMTP server configuration, use this to send emails
$cfg['SMTP_Host'] = '127.0.0.1';
$cfg['SMTP_Port'] = 25;
$cfg['SMTP_Auth'] = false;
$cfg['SMTP_User'] = '[email protected]<script data-cfhash='f9e31' type="text/javascript">/*   */</script>';
$cfg['SMTP_Password'] = 'user';
$cfg['SMTP_From'] = '[email protected]<script data-cfhash='f9e31' type="text/rocketscript">/*   */</script>';

/*
# Example configuration for gmail
# Don't forget to enable extension=php_openssl.dll in php.ini
$cfg['SMTP_Host'] = 'ssl://smtp.gmail.com';
$cfg['SMTP_Port'] = 465;
$cfg['SMTP_Auth'] = true;
$cfg['SMTP_User'] = '[email protected]<script data-cfhash='f9e31' type="text/rocketscript">/*  */</script>';
$cfg['SMTP_Password'] = 'user';
$cfg['SMTP_From'] = '[email protected]/*  */';
*/

# Whether to show skills in character search
$cfg['show_skills'] = true;

# Whether to show deathlist in character search
$cfg['show_deathlist'] = true;

$cfg['skill_names'] = array('nothing', 'nothing', 'sword', 'strenght', 'nothing', 'nothing', 'nothing');

# Banned names
$cfg['invalid_names'] = array('^gm','^god','admin','f**k','gamemaster', 'owner');

# Accounts that are allowed to access admin panel
# Example: array('account1', 'account2');
$cfg['admin_accounts'] = array();

# Listed IPs always allowed to access admin panel, no matter if it has account or not
$cfg['admin_ip'] = array('127.0.0.1');

# Player can only delete himself after specified inactivitiy time (seconds)
$cfg['player_delete_interval'] = 24*3600;

# Minimum level to create own guild. Cannot be lower than $cfg['guild_level']
$cfg['guild_leader_level'] = 20;

# Please disable guild manager if your server features guild editing
$cfg['guild_manager_enabled'] = true;

# Online status update interval (seconds). Should match statustimeout in your otserv configuration
$cfg['status_update_interval'] = 5*60;

# Shows more informatin when exception occurs. WARNING! Can reveal sensitive information.
$cfg['debug_backtrace'] = false;

# Schema control override. Disables/enables compatibility check for OTServ schema version.
$cfg['schema_check'] = false;

/*
 * This will affect date displaying
 * Look http://www.google.com/search?q=php+timezones for supported timezones.
 */
$cfg['timezone'] = 'UTC';

##################################################
#                 Town Config                    #
##################################################
/*
NOTICE
Town IDs must be correct and match those in your map
*/
# Town names
$cfg['temple'][1]['name'] = 'City Center';

# Now set which town(s) you want to use in character making
$cfg['temple'][1]['x'] = 2487;
$cfg['temple'][1]['y'] = 2428;
$cfg['temple'][1]['z'] = 15;
$cfg['temple'][1]['enabled'] = true;

##################################################
#                 Vocation Config                #
##################################################
/*
Notice:
It's only one item per slot. You need to script special onLogin
event in OTServ to add more items to new players. Look http://otfans.net/
for more information.
*/

################# No Vocation ####################
$id = 0;
$cfg['vocations'][$id]['name'] = 'No Vocation';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 0;
$cfg['vocations'][$id]['health'] = 150;
$cfg['vocations'][$id]['mana'] = 0;
$cfg['vocations'][$id]['cap'] = 400;
$cfg['vocations'][$id]['enabled'] = false;

$cfg['vocations'][$id]['look'][0] = 138;
$cfg['vocations'][$id]['look'][1] = 130;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

$cfg['vocations'][$id]['equipment'][3] = 3939;
$cfg['vocations'][$id]['equipment'][4] = 2650;
$cfg['vocations'][$id]['equipment'][5] = 2382;
$cfg['vocations'][$id]['equipment'][10] = 2050;

################# Goku #######################
$id = 228;
$cfg['vocations'][$id]['name'] = 'Son Goku';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 355;
$cfg['vocations'][$id]['look'][1] = 355;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Vegeta #######################
$id = 144;
$cfg['vocations'][$id]['name'] = 'Vegeta';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 128;
$cfg['vocations'][$id]['look'][1] = 128;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Gohan #######################
$id = 170;
$cfg['vocations'][$id]['name'] = 'Son Gohan';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 281;
$cfg['vocations'][$id]['look'][1] = 281;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Trunks #######################
$id = 157;
$cfg['vocations'][$id]['name'] = 'Trunks';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 176;
$cfg['vocations'][$id]['look'][1] = 176;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Bardock #######################
$id = 14;
$cfg['vocations'][$id]['name'] = 'Bardock';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 6;
$cfg['vocations'][$id]['look'][1] = 6;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Buu #######################
$id = 27;
$cfg['vocations'][$id]['name'] = 'Buu Buu';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 65;
$cfg['vocations'][$id]['look'][1] = 65;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Cell #######################
$id = 40;
$cfg['vocations'][$id]['name'] = 'Cell';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 104;
$cfg['vocations'][$id]['look'][1] = 104;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# C17 #######################
$id = 53;
$cfg['vocations'][$id]['name'] = 'C17';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 68;
$cfg['vocations'][$id]['look'][1] = 68;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# C18 #######################
$id = 229;
$cfg['vocations'][$id]['name'] = 'C18';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 81;
$cfg['vocations'][$id]['look'][1] = 81;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Freeza #######################
$id = 79;
$cfg['vocations'][$id]['name'] = 'Freeza';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 257;
$cfg['vocations'][$id]['look'][1] = 257;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Cooler #######################
$id = 92;
$cfg['vocations'][$id]['name'] = 'Cooler';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 110;
$cfg['vocations'][$id]['look'][1] = 110;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Tsuful #######################
$id = 105;
$cfg['vocations'][$id]['name'] = 'Tsuful';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 183;
$cfg['vocations'][$id]['look'][1] = 183;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Piccolo #######################
$id = 118;
$cfg['vocations'][$id]['name'] = 'Piccolo';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 20;
$cfg['vocations'][$id]['look'][1] = 20;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Dende #######################
$id = 131;
$cfg['vocations'][$id]['name'] = 'Dende';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 125;
$cfg['vocations'][$id]['look'][1] = 125;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# Brolly #######################
$id = 183;
$cfg['vocations'][$id]['name'] = 'Brolly';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 66;
$cfg['vocations'][$id]['look'][1] = 66;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;

################# C16 #######################
$id = 230;
$cfg['vocations'][$id]['name'] = 'C16';
$cfg['vocations'][$id]['level'] = 1;
$cfg['vocations'][$id]['group'] = 1;
$cfg['vocations'][$id]['maglevel'] = 1;
$cfg['vocations'][$id]['health'] = 250;
$cfg['vocations'][$id]['mana'] = 250;
$cfg['vocations'][$id]['cap'] = 1000;
$cfg['vocations'][$id]['enabled'] = true;

$cfg['vocations'][$id]['look'][0] = 317;
$cfg['vocations'][$id]['look'][1] = 317;

$cfg['vocations'][$id]['skills'][0] = 1;
$cfg['vocations'][$id]['skills'][1] = 1;
$cfg['vocations'][$id]['skills'][2] = 1;
$cfg['vocations'][$id]['skills'][3] = 1;
$cfg['vocations'][$id]['skills'][4] = 1;
$cfg['vocations'][$id]['skills'][5] = 1;
$cfg['vocations'][$id]['skills'][6] = 1;
?>

sql.php

<?php
class SQL {
    private
    $sql_connection,
    $schema_version,
    $sql_tables,
    $last_query,
    $last_insert_id;

    //creates new connection
    public function __construct($server, $user, $password, $database) {

        //warn if MySQL extension is not installed
        if(!extension_loaded('mysql'))
            throw new LibraryMissingException('MySQL library is not installed. Database access is impossible.', 0);

        //establish a link to MySQL
        $con = @mysql_connect($server,$user,$password);
        if ($con === false)
            throw new DatabaseConnectException('Unable to connect to mysql server. Please make sure it is up and running and you have correct user/password in config.inc.php.', 1);

        //select otserv database
        if (!mysql_select_db($database))
            throw new DatabaseSelectException('Unable to select database: '.$database.'. Make sure it exists.', 2);

        //retrieve table list
        $result = mysql_query('SHOW TABLES');
        if ($result === false)
            DatabaseQueryException('Failed to retrieve a table list.');

        while ($a = mysql_fetch_array($result))
            $this->sql_tables[] = $a[0];

        //retrieve schema version
        $result = mysql_query('SELECT value FROM schema_info WHERE name = \'version\'');
        if ($result === false) {
            $this->schema_version = false;
        } else {
            $a = mysql_fetch_array($result);
            $this->schema_version = $a['value'];
        }

        //assign the connection
        $this->sql_connection = $con;

        return true;
    }

    public function getSchemaVersion() {
        return $this->schema_version;
    }

    public function isTable($mixed) {
        return in_array($mixed, $this->sql_tables);
    }

    public function __destruct() {
        if(is_resource($this->last_query))
            mysql_free_result($this->last_query);
        mysql_close($this->sql_connection);
    }

    //Creates tables
    public function setup() {
        $tables = explode(';', file_get_contents('documents/shema.mysql'));
        foreach ($tables as $table) mysql_query($table);
    }

    //Perform simple SQL query
    public function myQuery($q) {
        if(is_resource($this->last_query))
            mysql_free_result($this->last_query);
        $this->last_query = mysql_query($q, $this->sql_connection);
        $this->last_insert_id = mysql_insert_id();
        if ($this->last_query === false) {
            $this->analyze();
            throw new DatabaseQueryException('Error #'.mysql_errno().':'.mysql_error(), $q);
        }
        return $this->last_query;
    }

    //True is last query failed
    public function failed() {
        if ($this->last_query === false) return true;
        return false;
    }

    //Returns current array with data values
    public function fetch_array() {
        if (!$this->failed())
            if (isset($this->last_query))
                return mysql_fetch_array($this->last_query);
            else
                throw new ClassException('Attempt to fetch a null query.');
        else
            throw new ClassException('Attempt to fetch failed query.');
    }

    //Returns the last insert id
    public function insert_id() {
        return $this->last_insert_id;
    }

    //Returns the number of rows affected
    public function num_rows() {
        if (!$this->failed())
            return mysql_num_rows($this->last_query);
        else
            throw new ClassException('Attempt to count failed query.');
    }

    //Quotes a string
    public function escape_string($string) {
        return mysql_real_escape_string($string);
    }

    //Quotes a value so it's safe to use in SQL statement
    public function quote($value) {
        if(is_numeric($value) && $value[0] != '0')
            return (int) $value;
        else
            return '\''.$this->escape_string($value).'\'';
    }

    public function analyze() {
    //determine database type, try to perform autosetup
        $is_aac_db = in_array('nicaw_accounts',$this->sql_tables);
        $is_server_db = in_array('accounts',$this->sql_tables) && in_array('players',$this->sql_tables);
        $is_svn = in_array('player_depotitems',$this->sql_tables) && in_array('groups',$this->sql_tables);
        $is_cvs = in_array('playerstorage',$this->sql_tables) && in_array('skills',$this->sql_tables);
        if (!$is_aac_db) {
            $this->setup();
            throw new DatabaseException('Notice: AutoSetup has attempted to create missing tables for you. Please create MySQL tables manually from "database.sql" if you are still getting this message.', 3);
        }elseif (!$is_server_db) {
            throw new DatabaseException('It appears you don\'t have SQL sample imported for OT server or it is not supported.', 4);
        }elseif ($is_cvs && !$is_svn) {
            throw new DatabaseException('This AAC version does not support your server. Consider using SQL v1.5.', 5);
        }
        return true;
    }

    public function repairTables() {
        if (isset($this->sql_tables))
            foreach($this->sql_tables as $table)
                mysql_query('REPAIR TABLE '.$table);
        return true;
    }

    ######################################
    # Methods for simple  data access    #
    ######################################

    //Insert data
    public function myInsert($table,$data) {global $cfg;
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'INSERT INTO `'.mysql_escape_string($table).'` (';
        foreach ($fields as $field)
            $query.= '`'.mysql_escape_string($field).'`,';
        $query = substr($query, 0, strlen($query)-1);
        $query.= ') VALUES (';
        foreach ($values as $value)
            if ($value === null)
                $query.= 'NULL,';
            else
                $query.= $this->quote($value).',';
        $query = substr($query, 0, strlen($query)-1);
        $query.= ');';
        $this->myQuery($query);
        return true;
    }

    //Replace data
    public function myReplace($table,$data) {global $cfg;
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'REPLACE INTO `'.mysql_escape_string($table).'` (';
        foreach ($fields as $field)
            $query.= '`'.mysql_escape_string($field).'`,';
        $query = substr($query, 0, strlen($query)-1);
        $query.= ') VALUES (';
        foreach ($values as $value)
            if ($value === null)
                $query.= 'NULL,';
            else
                $query.= $this->quote($value).',';
        $query = substr($query, 0, strlen($query)-1);
        $query.= ');';
        $this->myQuery($query);
        return true;
    }

    //Retrieve single row
    public function myRetrieve($table,$data) {
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'SELECT * FROM `'.mysql_escape_string($table).'` WHERE (';
        for ($i = 0; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).' AND ';
        $query = substr($query, 0, strlen($query)-4);
        $query.=');';
        $this->myQuery($query);
        if ($this->num_rows() != 1) return false;
        return $this->fetch_array();
    }

    //Update data
    public function myUpdate($table,$data,$where,$limit=1) {
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'UPDATE `'.mysql_escape_string($table).'` SET ';
        for ($i = 0; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).', ';
        $query = substr($query, 0, strlen($query)-2);
        $query.=' WHERE (';
        $fields = array_keys($where);
        $values = array_values($where);
        for ($i = 0; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).' AND ';
        $query = substr($query, 0, strlen($query)-4);
        if (isset($limit))
            $query.=') LIMIT '.$limit.';';
        else
            $query.=');';
        $this->myQuery($query);
        return true;
    }

    //Delete data
    public function myDelete($table,$data,$limit = 1) {
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'DELETE FROM `'.mysql_escape_string($table).'` WHERE (';
        for ($i = 0; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).' AND ';
        $query = substr($query, 0, strlen($query)-4);
        if ($limit > 0)
            $query.=') LIMIT '.$limit.';';
        else
            $query.=');';
        $this->myQuery($query);
        return true;
    }
}
?>

Natomiast tak wygląda tabelka:

https://zapodaj.net/1c383515b04c5.png.html

Opublikowano
# MySQL server settings
$cfg['SQL_Server'] = 'localhost';
$cfg['SQL_User'] = 'root';
$cfg['SQL_Password'] = '';
$cfg['SQL_Database'] = 'dbko';

na pewno nie masz hasla do bazy danych ?

zmien localhost na 127.0.0.1

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...