Zum Inhalt springen
  • 0

PHP Fatal error: Uncaught mysqli_sql_exception


Frage

Geschrieben

Hallo,

Ich kriege die ganze Zeit diesen Fehler in php: PHP Fatal error: Uncaught mysqli_sql_exception: Table 'gban.gban_location' doesn't exist in C:\inetpub\wwwroot\bans\database\queries.php:36

Code: 

<?php

function getDatabase() {
    // Values
    global $hostname, $username, $password, $database, $port;
    // Connection
    $connection = new mysqli($hostname, $username, $password);

    $database_sql = "CREATE DATABASE IF NOT EXISTS `" . $database . "`";
    // Check
    if ($connection -> connect_error) {
        die("[Bans] Database connection has failed, " . mysqli_connect_error());
    }
    // Create database
    if ($connection -> query($database_sql) == TRUE) {

    } else {
        echo "[Bans] Database has not been created, error: " . $connection -> error;
    }
    //Set to UTF8 to allow none english characters
    if (!$connection->set_charset("utf8")) {
        printf("Error loading character set utf8: %s\n", $connection->error);
        exit();
    }

    // Set database
    mysqli_select_db($connection, $database);
     // Return connection object
    return $connection;
}

function runQuery($query) {
    // Get object
    $database_object = getDatabase();
    // Try the query
    $callback = $database_object -> query($query);
    // Check
    if ($callback == FALSE) {
        return NULL;
    }

Könnte mir jemand weiter helfen?

Danke schon mal im voraus. :D

9 Antworten auf diese Frage

Empfohlene Beiträge

  • 0
Geschrieben

Steht doch da recht eindeutig schon ;)

vor 12 Stunden schrieb Zugriff:

Table 'gban.gban_location' doesn't exist

in der entspr. location.

Also, entweder gibt es diese DB / Tabelle gar nicht (könnte ggf ein Schreibfehler sein?).
Oder aber, der filepath ist falsch.

  • 0
Geschrieben

Ja gban_location wird in der Datenbank nicht Generiert aber alle anderen Daten werden Generiert normalerweise sollte es aber automatisch Generiert werden ich sende nacher mal den ganzen Code sobald ich daheim bin

  • 0
Geschrieben

Es wurde alles in der Datenbank Generiert außer gban_location wegen was? Oder wie behebe ich das?

function createTables() {
    $servers = "CREATE TABLE IF NOT EXISTS `gban_servers` (`id` varchar(50) NOT NULL,`type` varchar(20) NOT NULL,`host` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
    $admins = "CREATE TABLE IF NOT EXISTS `gban_admins` (`community_id` varchar(20) NOT NULL,`email` varchar(50) DEFAULT NULL,`type` tinyint(1) NOT NULL, PRIMARY KEY (`community_id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
    $appeals = "CREATE TABLE IF NOT EXISTS `gban_appeals` (`id` int(6) NOT NULL AUTO_INCREMENT, `status` varchar(10) NOT NULL DEFAULT 'Pending', `steamid` varchar(20) NOT NULL, `date` int(8) NOT NULL, `ip` varchar(20) NOT NULL, `unban_reason` text NOT NULL, `last_updated_by` varchar(255) NULL, `last_updated_date` int(8) NULL, `ban_id` INT(6) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
    $settings = "CREATE TABLE IF NOT EXISTS `gban_settings` (`name` varchar(50) NOT NULL, `value` varchar(100)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
    $blocks = "CREATE TABLE IF NOT EXISTS `gban_block` (`steamid` varchar(50), PRIMARY KEY (`steamid`)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
    $history = "CREATE TABLE IF NOT EXISTS gban_history(target varchar(30) NOT NULL, target_id varchar(30) NOT NULL, target_uniqueid varchar(255) NOT NULL, target_ip varchar(30) NOT NULL, admin varchar(30) NOT NULL, admin_id varchar(30) NOT NULL, reason text NOT NULL, date_banned int(20) NOT NULL, state int(1), unbanned_by varchar(30) NULL, unbanned_date int(20) NULL, server_id int(2) NOT NULL, id int(6) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id))";
    $list = "CREATE TABLE IF NOT EXISTS gban_list(target varchar(30) NOT NULL, target_id varchar(30) NOT NULL, target_uniqueid varchar(255) NOT NULL, target_ip varchar(30) NOT NULL, admin varchar(30) NOT NULL, admin_id varchar(30) NOT NULL, reason text NOT NULL, date int(20) NOT NULL, length int(10) NOT NULL, server_id int(2) NOT NULL, PRIMARY KEY(target_id))";
    $serverlist = "CREATE TABLE IF NOT EXISTS gban_serverlist(id int(2) AUTO_INCREMENT, host varchar(20) NOT NULL, name text NOT NULL, PRIMARY KEY(id))";
    $cache = "CREATE TABLE IF NOT EXISTS `gban_cache` (`steamid` varchar(64) NOT NULL, `personaname` varchar(32) NOT NULL, `profilestate` int(1) NOT NULL, `communityvisibilitystate` int(1) NOT NULL, `lastlogoff` int(32) NOT NULL, `profileurl` varchar(255) NOT NULL, `avatar` varchar(255) NOT NULL, `avatarmedium` varchar(255) NOT NULL, `avatarfull` varchar(255) NOT NULL, `personastate` int(1) NOT NULL, `realname` varchar(32) NOT NULL, `primaryclanid` int(32) NOT NULL, `timecreated` int(32) NOT NULL, `lastupdated` int(32) NOT NULL, PRIMARY KEY (`steamid`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
    $permissions = "CREATE TABLE IF NOT EXISTS `gban_permissions` ( `rank` varchar(16) NOT NULL, `ban_player` int(1) NOT NULL, `unban_player` int(1) NOT NULL, `block_player` int(1) NOT NULL, `manage_appeals` int(1) NOT NULL, `add_server` int(1) NOT NULL, `manage_servers` int(1) NOT NULL, `add_admin` int(1) NOT NULL, `manage_admins` int(1) NOT NULL, `admin_permissions` int(1) NOT NULL, `basic_settings` int(1) NOT NULL, `email_settings` int(1) NOT NULL, `themes` int(1) NOT NULL, `support` int(1) NOT NULL, PRIMARY KEY (`rank`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
    $audit = "CREATE TABLE IF NOT EXISTS `gban_audit`(`id` int(8) NOT NULL AUTO_INCREMENT, `steamid` int(20) NOT NULL, `event_type` varchar(32) NOT NULL, `event_details` varchar(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
    $location = "CREATE TABLE IF NOT EXISTS `gban_location` (`ip` varchar(16) NOT NULL, `country_name` varchar(255) NOT NULL, `flag` varchar(255) NOT NULL PRIMARY KEY (`ip`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;";

  • 0
Geschrieben (bearbeitet)
vor 12 Minuten schrieb Zugriff:

sry bin nicht so begabt mit MYSQL

Offenbar ja auch mit PHP, wenn du nicht mal weißt, wie du dein Code debuggen kannst.

Du musst du doch nur mal schauen, ob das Statement,was in $location gespeichert wird, auch ausgeführt wird.

Ansonsten installiere dir z.B. HeidiSQL, DBeaver oder phpMyAdmin, um dich mit der Datenbank zu verbinden, um zu schauen, was da los ist. Dort kannst du dann auch SQL-Statements ausführen.

 

Bearbeitet von Whiz-zarD
  • 0
Geschrieben
vor 9 Minuten schrieb Whiz-zarD:

Offenbar ja auch mit PHP, wenn du nicht mal weißt, wie du dein Code debuggen kannst.

Du musst du doch nur mal schauen, ob das Statement,was in $location gespeichert wird, auch ausgeführt wird.

Ansonsten installiere dir z.B. HeidiSQL, DBeaver oder phpMyAdmin, um dich mit der Datenbank zu verbinden, um zu schauen, was da los ist. Dort kannst du dann auch SQL-Statements ausführen.

 

Ich habe den Befehl jetzt so in phpmyadmin ausgeführt: CREATE TABLE `gban`.`gban_location`(`ip` varchar(16) NOT NULL, `country_name` varchar(255) NOT NULL, `flag` varchar(255) NOT NULL PRIMARY KEY (`ip`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;" aber es funktioniert so nicht was habe ich falsch gemacht?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...