Oké, dus geen van de bovenstaande antwoorden had voor mij gewerkt, maar gelukkig was ik in staat om een database op te zetten en op mijn eigen manier in gebruik te nemen en ik kan nu query's maken en ze met succes uitvoeren, dus ik zal mijn methode met je delen in de hoop dat iemand anders die het internet afstruint dit kan tegenkomen en niet door hetzelfde hoofd krabben hoeft te gaan als ik.
Als je een snel overzicht wilt, scroll dan naar Stap 3 en lees vanaf daar verder. Als je een complete beginner bent, blijf dan lezen, want ik zal je er in detail doorheen leiden.
Paar dingen om op te noemen:
- Je zult een database moeten opzetten via een Terminal in Cloud 9. Ik had geen ervaring voordat ik dit eerder in een Terminal deed, maar het is heel eenvoudig te leren.
- Je kunt niet gebruik
mysql
functies, moet umysqli
. gebruiken , sindsmysql
functies zijn verouderd en Cloud 9 zal ze niet uitvoeren.
Stap 1 :MySQL instellen op Cloud 9 (in Terminal)
Open in uw project een nieuwe terminal (klik op het plustekentabblad boven de teksteditorruimte, selecteer "Nieuwe terminal"). Typ in de terminal mysql-ctl start
en druk op Enter. MySQL start achterin op, maar u krijgt geen reactie terug in de terminal.
Typ vervolgens mysql-ctl cli
en druk op Enter. Je zou wat tekst moeten zien die begint als Welcome to the MySQL monitor...
. Gefeliciteerd, je hebt MySQL ingesteld op je Cloud 9-project.
Stap 2 :Maak een testdatabase (in Terminal)
Je kunt doorgaan en je officiële database maken als je wilt, maar daarom zal ik gewoon een database maken met een tabel met een ID en een gebruikersnaam. Dus hier zijn de stappen voor het opzetten van een database en een tabel. Als je eerder MySQL en databases hebt gebruikt, zou dit een makkie moeten zijn, maar ik zal het in detail uitleggen voor degenen die MySQL misschien niet volledig begrijpen.
- Typ
SHOW DATABASES;
en druk op Enter. Dit toont een lijst met huidige databases binnen uw project. U kunt dit op elk moment invoeren als u een lijst met uw databases over het huidige project wilt zien. - Typ
CREATE DATABASE sample_db;
en druk op Enter. U zou eenQuery OK, 1 Row affected.
wat betekent dat de zoekopdracht is geslaagd. Je kunt de database een naam geven die je wilt, maar voor deze kleine uitleg heb ik hemsample_db
genoemd. . - Typ
USE sample_db;
en druk op Enter. Dit selecteertsample_db
uit de lijst met databases. - Typ
CREATE TABLE users (id INT(11), username VARCHAR(20));
en druk op Enter. Dit creëert een tabel met de naamusers
met twee kolommen:id
enusername
. Het getal tussen haakjes staat voor de tekenlimiet die de kolom in de database zal opslaan. In dit geval bijvoorbeeldusername
houdt geen string langer dan 20 tekens lang vast. - Typ
INSERT INTO users (id, username) VALUES (1, "graham12");
en druk op Enter. Dit zal de id van1
. toevoegen en een gebruikersnaamgraham12
in de tafel. Sinds deid
kolom is eenINT
, we zetten er geen aanhalingstekens omheen. - Typ
SELECT * FROM users;
en druk op Enter. Dit zal alles tonen wat in deusers
. staat tafel. De enige vermelding daarin zou moeten zijn wat we hebben ingevoegd bij de laatste stap die we zojuist hebben gedaan.
Stap 3 :Haal de inloggegevens op die u nodig hebt om verbinding te maken met de database vanuit PHP. (in Terminal)
Nu hebben we wat gegevens in onze tabel die we kunnen testen met onze mysqli
verbinding met. Maar eerst moeten we de inloggegevens krijgen die we nodig hebben om verbinding te maken met de database in PHP. In Cloud 9 hebben we 5 inloggegevens nodig om verbinding te maken:
- Hostnaam
- Gebruikersnaam
- Wachtwoord
- Databasenaam
- Poort #
Gebruikersnaam, wachtwoord, databasenaam en poortnummer zijn u inmiddels praktisch al bekend. Ik zal het uitleggen:
- Hostnaam - Typ
SHOW VARIABLES WHERE Variable_name = 'hostname';
en druk op Enter. U krijgt een tabel met 2 kolommen:Variable_name
enValue
. In deValue
kolom zou je zoiets moeten zien alsyourUsername-yourProjectName-XXXXXXX
, waarbij deX
's zijn een 7-cijferig nummer. Schrijf dit nummer op of bewaar het ergens. Dit is uw hostnaam. (Als je een snel overzicht krijgt van deze walkthrough, start dan gewoon een nieuwe terminal en start je mysql en selecteer de database die je wilt gebruiken, typ vervolgensSHOW VARIABLES WHERE Variable_name = 'hostname';
. Lees deze stap opnieuw vanaf het begin als je in de war bent.) - Gebruikersnaam - Uw gebruikersnaam die u gebruikt om in te loggen op Cloud 9.
- Wachtwoord - Er is NEE wachtwoord voor uw database in Cloud 9.
- Databasenaam - Dit zou
sample_db
. zijn of hoe je je database ook hebt genoemd; - Poort # - is
3306
. In Cloud 9 zijn al uw projecten aangesloten op3306
. Dit is een universele constante van Cloud 9. Het zal niet anders zijn. Schrijf dit zoals je een geheel getal zou doen, niet als een koord.mysqli_connect()
zal de poort # interpreteren als eenlong
gegevenstype.
Laatste stap :Maak verbinding met de database met PHP! (met PHP)
Open een PHP-bestand en noem het zoals je wilt.
Ik doe alsof mijn hostnaam graham12-sample_db-1234567
is voor dit voorbeeld en dat dit is wat mijn gegevens zien er als volgt uit:
- Hostnaam:"graham12-sample_db-1234567"
- Gebruikersnaam:"graham12"
- Wachtwoord:""
- Databasenaam:"sample_db"
- Poort #:3306
Dus in PHP , voeg uw . in referenties dienovereenkomstig:
<?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'];
}
?>
Als je een resultaat krijgt en geen foutmelding, dan heb je met succes een database opgezet en er een verbinding mee gemaakt met PHP in Cloud 9. Je zou nu alle query's moeten kunnen maken die je normaal kunt maken.
Opmerking:ik heb het laatste deel gedemonstreerd zonder geparametriseerde queries te gebruiken om het simpel te houden. U moet altijd geparametriseerde query's gebruiken wanneer u met echte webtoepassingen werkt. U kunt hier meer informatie over krijgen:MySQLi-voorbereide verklaringen .