Veröffentlicht 25. November 20222 j 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
26. November 20222 j 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.
26. November 20222 j Autor 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
26. November 20222 j Autor 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;";
26. November 20222 j vor 11 Minuten schrieb Zugriff: Oder wie behebe ich das? Indem du einfach mal das SQL-Statement, was im string $location gespeichert wird, ausführst.
26. November 20222 j Autor Hey Danke für deine Antwort wie führe ich das denn aus in der MYSQL Console? sry bin nicht so begabt mit MYSQL
26. November 20222 j 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 26. November 20222 j von Whiz-zarD
26. November 20222 j Autor 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?
26. November 20222 j Wenn es nicht funktioniert, dann gibt es eine Fehlermeldung. Dann versuche, die Fehlermeldung zu verstehen.
7. Dezember 20222 j $connection = new mysqli($hostname, $username, $password); fehlt der Datenbankname
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.