Langatmig und verworren (aber haben Sie Geduld mit mir!), hier ist ein Klassensystem, das ich gemacht habe, um zu prüfen, ob eine DB existiert und auch um die benötigten Tabellen zu erstellen:
<?php
class Table
{
public static function Script()
{
return "
CREATE TABLE IF NOT EXISTS `users` ( `id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT );
";
}
}
class Install
{
#region Private constructor
private static $link;
private function __construct()
{
static::$link = new mysqli();
static::$link->real_connect("localhost", "username", "password");
}
#endregion
#region Instantiator
private static $instance;
public static function Instance()
{
static::$instance = (null === static::$instance ? new self() : static::$instance);
return static::$instance;
}
#endregion
#region Start Install
private static $installed;
public function Start()
{
var_dump(static::$installed);
if (!static::$installed)
{
if (!static::$link->select_db("en"))
{
static::$link->query("CREATE DATABASE `en`;")? $die = false: $die = true;
if ($die)
return false;
static::$link->select_db("en");
}
else
{
static::$link->select_db("en");
}
return static::$installed = static::DatabaseMade();
}
else
{
return static::$installed;
}
}
#endregion
#region Table creator
private static function CreateTables()
{
$tablescript = Table::Script();
return static::$link->multi_query($tablescript) ? true : false;
}
#endregion
private static function DatabaseMade()
{
$created = static::CreateTables();
if ($created)
{
static::$installed = true;
}
else
{
static::$installed = false;
}
return $created;
}
}
Darin können Sie den Namen der Datenbank ersetzen en
mit einem beliebigen Datenbanknamen und ändern Sie auch das Erstellungsskript in irgendetwas und (hoffentlich!) wird es nicht kaputt gehen. Wenn jemand dies verbessern kann, lassen Sie es mich wissen!
Hinweis
Wenn Sie Visual Studio nicht mit PHP-Tools verwenden, machen Sie sich keine Sorgen über die Regionen, sie sind für die Code-Faltung :P