Okay, så ingen af ovenstående svar havde fungeret for mig, men heldigvis var jeg i stand til at sætte en database op og få den op at køre på min egen måde, og jeg kan nu lave forespørgsler og køre dem med succes, så jeg vil dele min metode med dig i håb om, at alle andre, der gennemsøger internettet, kan falde over dette og ikke skulle gå igennem den samme hovedkradsning, som jeg gjorde.
Hvis du vil have en hurtig gennemgang, skal du bare rulle til Trin 3 og læs videre derfra. Hvis du er helt nybegynder, så fortsæt med at læse, da jeg vil guide dig igennem det i detaljer.
Et par ting at nævne:
- Du bliver nødt til at konfigurere en database via en terminal i Cloud 9. Jeg havde ingen erfaring, før jeg gjorde det i en terminal før, men det er meget nemt at lære.
- Det kan du ikke brug
mysql
funktioner, skal du brugemysqli
, damysql
funktioner er forældede, og Cloud 9 vil ikke køre dem.
Trin 1 :Konfigurer MySQL på Cloud 9 (i Terminal)
I dit projekt skal du åbne en ny terminal (klik på plustegnet over tekstredigeringsrummet, vælg "Ny terminal"). Skriv mysql-ctl start
i terminalen og tryk på Enter. MySQL starter op bagved, men du får ikke noget svar tilbage i terminalen.
Indtast derefter mysql-ctl cli
og tryk på Enter. Du bør se noget tekst, der starter som Welcome to the MySQL monitor...
. Tillykke, du har konfigureret MySQL på dit Cloud 9-projekt.
Trin 2 :Opret en testdatabase (i Terminal)
Du kan faktisk gå videre og oprette din officielle database, hvis du vil, men for denne skyld laver jeg bare en database, der indeholder en tabel, der indeholder et ID og et brugernavn. Så her er trinene til at opsætte en database og en tabel. Hvis du har brugt MySQL og databaser før, så burde dette være kage, men jeg vil forklare det i detaljer for dem, der måske ikke helt forstår MySQL .
- Skriv
SHOW DATABASES;
og tryk på Enter. Dette vil vise en liste over aktuelle databaser i dit projekt. Du kan indtaste dette, når som helst du ønsker at se en liste over dine databaser på det aktuelle projekt. - Indtast
CREATE DATABASE sample_db;
og tryk på Enter. Du bør få enQuery OK, 1 Row affected.
hvilket betyder, at forespørgslen lykkedes. Du kan navngive databasen, hvad du vil, men til denne lille gennemgang kaldte jeg densample_db
. - Skriv
USE sample_db;
og tryk på Enter. Dette vælgersample_db
fra listen over databaser. - Indtast
CREATE TABLE users (id INT(11), username VARCHAR(20));
, og tryk på Enter. Dette opretter en tabel med navnetusers
med to kolonner:id
ogusername
. Tallet i parentes repræsenterer tegngrænsen, som kolonnen vil gemme i databasen. I dette tilfælde f.eks.username
vil ikke indeholde en streng på mere end 20 tegn. - Indtast
INSERT INTO users (id, username) VALUES (1, "graham12");
, og tryk på Enter. Dette tilføjer id'et for1
og et brugernavngraham12
i bordet. Sidenid
kolonne er enINT
, vi sætter ikke anførselstegn omkring det. - Skriv
SELECT * FROM users;
, og tryk på Enter. Dette vil vise alt, hvad der er iusers
bord. Den eneste indgang der skulle være det, vi indsatte fra det sidste trin, vi lige gjorde.
Trin 3 :Få de legitimationsoplysninger, du skal bruge for at oprette forbindelse til databasen fra PHP. (i terminal)
Nu har vi nogle data i vores tabel, som vi kan teste vores mysqli
forbindelse med. Men først skal vi få de legitimationsoplysninger, vi skal bruge for at oprette forbindelse til databasen i PHP. I Cloud 9 skal vi bruge 5 legitimationsoplysninger for at oprette forbindelse:
- Værtsnavn
- Brugernavn
- Adgangskode
- Databasenavn
- Port #
Brugernavn, adgangskode, databasenavn og port # er praktisk talt allerede kendt af dig nu. Jeg vil forklare:
- Værtsnavn - Indtast
SHOW VARIABLES WHERE Variable_name = 'hostname';
, og tryk på Enter. Du får en tabel, der har 2 kolonner:Variable_name
ogValue
. IValue
kolonne skulle du se noget somyourUsername-yourProjectName-XXXXXXX
, hvorX
's er et 7-cifret tal. Skriv dette nummer ned eller gem det et sted. Dette er dit værtsnavn. (Hvis du får en hurtig gennemgang af denne gennemgang, skal du bare starte en ny terminal og starte din mysql og vælge den database, du vil bruge, og derefter indtasteSHOW VARIABLES WHERE Variable_name = 'hostname';
. Læs dette trin igen fra begyndelsen, hvis du er forvirret.) - Brugernavn - Dit brugernavn, som du bruger til at logge ind på Cloud 9.
- Adgangskode - Der er NEJ adgangskode til din database i Cloud 9.
- Databasenavn - Dette ville være
sample_db
eller hvad du nu kaldte din database; - Port # - er
3306
. I Cloud 9 er alle dine projekter koblet til3306
. Dette er en universel konstant for Cloud 9. Det bliver ikke noget andet. Skriv dette som et heltal, ikke som en snor.mysqli_connect()
vil fortolke port # som enlong
datatype.
Sidste trin :Opret forbindelse til databasen med PHP! (ved hjælp af PHP)
Åbn en PHP-fil og navngiv den, hvad du vil.
Jeg vil foregive, at mit værtsnavn er graham12-sample_db-1234567
for dette eksempel, og at det er hvad mit er data ser sådan ud:
- Værtsnavn:"graham12-sample_db-1234567"
- Brugernavn:"graham12"
- Adgangskode:""
- Databasenavn:"sample_db"
- Port #:3306
Så i PHP , indsæt din legitimationsoplysninger i overensstemmelse hermed:
<?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'];
}
?>
Hvis du får et resultat og ingen fejl, så har du opsat en database og dannet en forbindelse til den med PHP i Cloud 9. Du skulle nu være i stand til at lave alle de forespørgsler, du normalt kan lave.
Bemærk:Jeg demonstrerede den sidste del uden at bruge parametriserede forespørgsler for at være enkel. Du bør altid bruge parametriserede forespørgsler, når du arbejder med rigtige webapplikationer. Du kan få mere information om det her:MySQLi Prepared Statements .