Dobře, takže žádná z výše uvedených odpovědí pro mě nefungovala, ale naštěstí se mi podařilo nastavit databázi a uvést ji do provozu vlastním způsobem a nyní mohu zadávat dotazy a úspěšně je spouštět, takže se s vámi podělím o svou metodu v naději, že na to může narazit kdokoli jiný, kdo prohledává internet, a nebude si muset procházet stejným škrábáním v hlavě jako já.
Pokud chcete rychlý přehled, přejděte na Krok 3 a odtamtud čtěte dál. Pokud jste úplný začátečník, pokračujte ve čtení, protože vás podrobně provedu.
Je třeba zmínit několik věcí:
- Budete muset nastavit databázi prostřednictvím terminálu v Cloud 9. Předtím jsem neměl žádné zkušenosti s tím, než jsem to dělal v terminálu, ale je velmi snadné se to naučit.
- Nemůžete ne použijte
mysql
funkce, musíte použítmysqli
, protožemysql
funkce jsou zastaralé a Cloud 9 je nebude spouštět.
Krok 1 :Nastavení MySQL na Cloud 9 (v terminálu)
Ve svém projektu otevřete Nový terminál (klikněte na záložku se znaménkem plus nad prostorem textového editoru a vyberte „Nový terminál“). V terminálu zadejte mysql-ctl start
a stiskněte Enter. MySQL se spustí vzadu, ale v terminálu nedostanete žádnou odpověď.
Dále zadejte mysql-ctl cli
a stiskněte Enter. Měli byste vidět nějaký text, který začíná jako Welcome to the MySQL monitor...
. Gratulujeme, nastavili jste MySQL ve svém projektu Cloud 9.
Krok 2 :Vytvořte testovací databázi (v Terminálu)
Můžete skutečně pokračovat a vytvořit svou oficiální databázi, pokud chcete, ale pro tento účel vytvořím databázi, která obsahuje tabulku obsahující ID a uživatelské jméno. Zde jsou kroky k nastavení databáze a tabulky. Pokud jste dříve používali MySQL a databáze, pak by to měl být koláč, ale vysvětlím to podrobně pro ty, kteří nemusí MySQL úplně rozumět.
- Zadejte
SHOW DATABASES;
a stiskněte Enter. Zobrazí se seznam aktuálních databází v rámci vašeho projektu. Toto můžete zadat kdykoli, když budete chtít vidět seznam svých databází v aktuálním projektu. - Zadejte
CREATE DATABASE sample_db;
a stiskněte Enter. Měli byste dostatQuery OK, 1 Row affected.
což znamená, že dotaz byl úspěšný. Databázi si můžete pojmenovat, jak chcete, ale pro tento malý návod jsem ji pojmenovalsample_db
. - Zadejte
USE sample_db;
a stiskněte Enter. Tím vyberetesample_db
ze seznamu databází. - Zadejte
CREATE TABLE users (id INT(11), username VARCHAR(20));
a stiskněte Enter. Tím se vytvoří tabulka s názvemusers
se dvěma sloupci:id
ausername
. Číslo v závorce představuje limit počtu znaků, který bude sloupec ukládat do databáze. V tomto případě napříkladusername
nebude obsahovat řetězec delší než 20 znaků. - Zadejte
INSERT INTO users (id, username) VALUES (1, "graham12");
a stiskněte Enter. Tím se přidá id1
a uživatelské jménograham12
ve stole. Protožeid
sloupec jeINT
, nedáváme kolem něj uvozovky. - Zadejte
SELECT * FROM users;
a stiskněte Enter. Tím se zobrazí vše, co je vusers
stůl. Jediným záznamem by mělo být to, co jsme vložili z posledního kroku, který jsme právě provedli.
Krok 3 :Získejte přihlašovací údaje, které budete potřebovat pro připojení k databázi z PHP. (v Terminálu)
Nyní máme v naší tabulce nějaká data, která můžeme otestovat naše mysqli
spojení s. Nejprve ale musíme získat přihlašovací údaje, které budeme potřebovat pro připojení k databázi v PHP. V Cloud 9 budeme k připojení potřebovat 5 přihlašovacích údajů:
- Název hostitele
- Uživatelské jméno
- Heslo
- Název databáze
- Port č.
Uživatelské jméno, heslo, název databáze a port # již prakticky znáte. Vysvětlím:
- Název hostitele – Zadejte
SHOW VARIABLES WHERE Variable_name = 'hostname';
a stiskněte Enter. Získáte tabulku, která má 2 sloupce:Variable_name
aValue
. VValue
ve sloupci, měli byste vidět něco jakoyourUsername-yourProjectName-XXXXXXX
, kdeX
's jsou 7místné číslo. Zapište si toto číslo nebo si ho někam uložte. Toto je název vašeho hostitele. (Pokud získáváte rychlý přehled o tomto návodu, spusťte nový terminál a spusťte svůj mysql a vyberte databázi, kterou chcete použít, a poté zadejteSHOW VARIABLES WHERE Variable_name = 'hostname';
. Pokud jste zmateni, přečtěte si tento krok znovu od začátku.) - Uživatelské jméno – Vaše uživatelské jméno, které používáte k přihlášení do Cloud 9.
- Heslo - Existuje NE heslo pro vaši databázi v Cloud 9.
- Název databáze - Toto by bylo
sample_db
nebo jakkoli jste pojmenovali svou databázi; - Port č. - je
3306
. V Cloud 9 jsou všechny vaše projekty připojeny k3306
. To je univerzální konstanta Cloudu 9. Nic jiného to nebude. Napište to jako celé číslo, ne jako struna.mysqli_connect()
bude port # interpretovat jakolong
datový typ.
Poslední krok :Připojte se k databázi pomocí PHP! (pomocí PHP)
Otevřete soubor PHP a pojmenujte jej, jak chcete.
Budu předstírat, že název mého hostitele je graham12-sample_db-1234567
pro tento příklad a že to je to, co moje data vypadají takto:
- Název hostitele:"graham12-sample_db-1234567"
- Uživatelské jméno:"graham12"
- Heslo:""
- Název databáze:"sample_db"
- Port č.:3306
Tedy v PHP , vložte vaše odpovídajícím způsobem pověření:
<?php
//Connect to the database
$host = "grahamsutt12-sample_db-1234567"; //See Step 3 about how to get host name
$user = "grahamsutt12"; //Your Cloud 9 username
$pass = ""; //Remember, there is NO password!
$db = "sample_db"; //Your database name you want to connect to
$port = 3306; //The port #. It is always 3306
$connection = mysqli_connect($host, $user, $pass, $db, $port)or die(mysql_error());
//And now to perform a simple query to make sure it's working
$query = "SELECT * FROM users";
$result = mysqli_query($connection, $query);
while ($row = mysqli_fetch_assoc($result)) {
echo "The ID is: " . $row['id'] . " and the Username is: " . $row['username'];
}
?>
Pokud dostanete výsledek a žádnou chybu, pak jste úspěšně nastavili databázi a vytvořili k ní připojení pomocí PHP v Cloud 9. Nyní byste měli být schopni zadávat všechny dotazy, které běžně můžete dělat.
Poznámka:Poslední část jsem demonstroval bez použití parametrizovaných dotazů kvůli jednoduchosti. Při práci se skutečnými webovými aplikacemi byste měli vždy používat parametrizované dotazy. Více informací o tom můžete získat zde:Připravená prohlášení MySQLi .