sql >> Databasteknik >  >> RDS >> Mysql

php ansluta till mysql db i moln 9?

Okej, så inget av ovanstående svar hade fungerat för mig, men lyckligtvis kunde jag ställa in en databas och få den igång på mitt eget sätt och jag kan nu göra frågor och köra dem framgångsrikt, så jag kommer att dela min metod med dig i hopp om att någon annan som letar igenom internet kan snubbla över detta och inte behöva gå igenom samma huvud som jag gjorde.

Om du vill ha en snabb sammanfattning, rulla bara till Steg 3 och läs vidare därifrån. Om du är helt nybörjare, fortsätt läsa eftersom jag kommer att gå igenom det i detalj.

Ett par saker att nämna:

  • Du måste ställa in en databas via en terminal i Cloud 9. Jag hade ingen erfarenhet innan jag gjorde det i en terminal tidigare, men det är väldigt enkelt att lära sig.
  • Du kan inte använd mysql funktioner måste du använda mysqli , eftersom mysql funktioner är föråldrade och Cloud 9 kommer inte att köra dem.

Steg 1 :Ställ in MySQL på Cloud 9 (i Terminal)

Öppna en ny terminal i ditt projekt (klicka på plustecknet ovanför textredigeraren, välj "Ny terminal"). I terminalen skriver du mysql-ctl start och tryck på Enter. MySQL kommer att starta på baksidan, men du får inget svar tillbaka i terminalen.

Skriv sedan mysql-ctl cli och tryck på Enter. Du bör se lite text som börjar som Welcome to the MySQL monitor... . Grattis, du har ställt in MySQL på ditt Cloud 9-projekt.

Steg 2 :Skapa en testdatabas (i Terminal)

Du kan faktiskt gå vidare och skapa din officiella databas om du vill, men för denna skull gör jag bara en databas som innehåller en tabell som innehåller ett ID och ett användarnamn. Så här är stegen för att ställa in en databas och en tabell. Om du har använt MySQL och databaser tidigare borde det här vara en tårta, men jag ska förklara det i detalj för dem som kanske inte helt förstår MySQL .

  1. Skriv SHOW DATABASES; och tryck på Enter. Detta kommer att visa en lista över aktuella databaser inom ditt projekt. Du kan ange detta när du vill se en lista över dina databaser på det aktuella projektet.
  2. Skriv in CREATE DATABASE sample_db; och tryck på Enter. Du bör få en Query OK, 1 Row affected. vilket betyder att frågan lyckades. Du kan namnge databasen vad du vill, men för den här lilla genomgången döpte jag den till sample_db .
  3. Skriv in USE sample_db; och tryck på Enter. Detta väljer sample_db från listan över databaser.
  4. Skriv in CREATE TABLE users (id INT(11), username VARCHAR(20)); , och tryck på Enter. Detta skapar en tabell med namnet users med två kolumner:id och username . Siffran inom parentes representerar teckenbegränsningen som kolumnen kommer att lagra i databasen. I det här fallet till exempel username rymmer inte en sträng som är längre än 20 tecken.
  5. Skriv in INSERT INTO users (id, username) VALUES (1, "graham12"); , och tryck på Enter. Detta kommer att lägga till ID:t för 1 och ett användarnamn graham12 i bordet. Sedan id kolumnen är en INT , vi sätter inte citattecken runt det.
  6. Skriv in SELECT * FROM users; , och tryck på Enter. Detta kommer att visa allt som finns i users tabell. Den enda posten där borde vara det vi infogade från det senaste steget vi just gjorde.

Steg 3 :Hämta de referenser du behöver för att ansluta till databasen från PHP. (i terminal)

Nu har vi lite data i vår tabell som vi kan testa vår mysqli kontakt med. Men först måste vi få de referenser vi behöver för att ansluta till databasen i PHP. I Cloud 9 behöver vi 5 referenser för att ansluta:

  1. Värdnamn
  2. Användarnamn
  3. Lösenord
  4. Databasnamn
  5. Port #

Användarnamn, lösenord, databasnamn och port # är praktiskt taget redan kända för dig vid det här laget. Jag ska förklara:

  1. Värdnamn - Skriv in SHOW VARIABLES WHERE Variable_name = 'hostname'; , och tryck på Enter. Du får en tabell som har två kolumner:Variable_name och Value . I Value kolumnen bör du se något som yourUsername-yourProjectName-XXXXXXX , där X s är ett sjusiffrigt nummer. Skriv ner det här numret eller spara det någonstans. Detta är ditt värdnamn. (Om du får en snabb genomgång av denna genomgång, starta bara en ny terminal och starta upp din mysql och välj den databas du vill använda, skriv sedan in SHOW VARIABLES WHERE Variable_name = 'hostname'; . Läs om det här steget från början om du är förvirrad.)
  2. Användarnamn - Ditt användarnamn som du använder för att logga in på Cloud 9.
  3. Lösenord – Det finns NEJ lösenord för din databas i Cloud 9.
  4. Databasnamn - Det här skulle vara sample_db eller vad du än heter din databas;
  5. Port # - är 3306 . I Cloud 9 är alla dina projekt kopplade till 3306 . Detta är en universell konstant för Cloud 9. Det kommer inte att vara något annat. Skriv detta som ett heltal, inte som ett snöre. mysqli_connect() kommer att tolka port # som en long datatyp.

Sista steget :Anslut till databasen med PHP! (med PHP)

Öppna en PHP-fil och namnge den vad du vill.

Jag låtsas att mitt värdnamn är graham12-sample_db-1234567 för det här exemplet och att detta är vad mitt data ser ut som:

  • Värdnamn:"graham12-sample_db-1234567"
  • Användarnamn:"graham12"
  • Lösenord:""
  • Databasnamn:"sample_db"
  • Port #:3306

Så i PHP , infoga din referenser i enlighet med detta:

<?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'];
    }

?>

Om du får ett resultat och inget fel så har du framgångsrikt konfigurerat en databas och skapat en koppling till den med PHP i Cloud 9. Du bör nu kunna göra alla frågor du normalt kan göra.

Obs:Jag demonstrerade den sista delen utan att använda parametriserade frågor för att vara enkel. Du bör alltid använda parametriserade frågor när du arbetar med riktiga webbapplikationer. Du kan få mer information om det här:MySQLi Prepared Statements .



  1. Hur sammanfogar jag strängar från en underfråga till en enda rad i mysql?

  2. Tabellvariabel i Oracles lagrade procedur

  3. PDO-motsvarigheten till mysql_client_encoding()?

  4. Hur du skyddar din MySQL- eller MariaDB-databas från SQL-injektion:Del två