Długo zdyszany i zawiłowany (ale daj mi spokój!), Tutaj jest to system klasy I w celu sprawdzenia, czy DB istnieje i również tworzyć tabele wymagane:
<?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;
}
}
W ten można zastąpić nazwę bazy danych en
z dowolnej bazy danych nazwa lubisz, a także zmienić twórcę skrypt do czegokolwiek i (miejmy nadzieję!) to go nie złamie. Jeśli ktokolwiek może to poprawić, daj mi znać!
Uwaga
Jeśli nie korzystać z narzędzi Visual Studio PHP, nie martw się o regionach, są one dla zwijania kodu: P
Pierwsza dobra. Drugi nie tyle. Być może nie masz uprawnień do tworzenia baz danych. –
@OllieJones drugi też jest dobry, odbierający zakłada, że jeśli OP chce stworzyć bazę danych – nawfal
Dlaczego "INFORMATION_SCHEMA" we wszystkich wersjach jest? U mnie jest we wszystkich małych literach. – Hubro