Datakurser
Aktuell vecka: 48

Tillbaka till toppen

PHP Databasuppkoppling

Vanligaste sättet på webbhotell

<?php
$dbname = 'databasnamm';
$hostname = 'mysql.testserver.se';
$DB_USER = 'anvandarnamn';
$DB_PASSWORD = 'losenord';

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'");

try {
$dbconn = new PDO("mysql:host=$hostname;dbname=$dbname;", $DB_USER, $DB_PASSWORD, $options);
$dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*** echo a message saying we have connected ***/
//echo 'Connected to database.<br />';
}
catch(PDOException $e){
// For debug purpose, shows all connection details
echo 'Connection failed: '.$e->getMessage()."<br />";
// Hide connection details.
//echo 'Could not connect to database.<br />');
}

Labbservern

Du har automatiskt fått en databas med ditt användarnamn, därmed ser det för dig ut enligt nedan. Ditt lösenord är inte samma som ditt labbserverkonto utan lösenord nummer två som du fick när du fick ditt konto.

<?php
$dbname = 'labbserverAnvändarNamn';
$hostname = 'localhost';
$DB_USER = 'labbserverAnvändarNamn';
$DB_PASSWORD = 'labbserverMySQLlösenord';

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'");

try {
$dbconn = new PDO("mysql:host=$hostname;dbname=$dbname;", $DB_USER, $DB_PASSWORD, $options);
$dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*** echo a message saying we have connected ***/
//echo 'Connected to database.<br />';
}
catch(PDOException $e){
// For debug purpose, shows all connection details
echo 'Connection failed: '.$e->getMessage()."<br />";
// Hide connection details.
//echo 'Could not connect to database.<br />');
}

Laragon på din dator

Skapa först en databas genom att tanka ner phpMyAdmin och skapa en där. Se avsnitt "Databaser" under övrigt.

Du kopplar upp dig mot phpMyAdmin med "localhost/phpMyAdmin". Användarnamn är "root" nu till en början då vi ännu inte har kunskaper om hur vi fixar nya users för databasen. Lösenordet är tomt.

<?php
$dbname = 'mindatabas';
$hostname = 'localhost';
$DB_USER = 'root';
$DB_PASSWORD = '';
$options  = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'");

try {
    $dbconn = new PDO("mysql:host=$hostname;dbname=$dbname;", $DB_USER, 
    $DB_PASSWORD, $options);
    $dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    /*** echo a message saying we have connected ***/
    echo 'Connected to database.<br />';
}
catch(PDOException $e){
    // For debug purpose, shows all connection details
    echo 'Connection failed: '.$e->getMessage()."<br />";
      // Hide connection details.
    //echo 'Could not connect to database.<br />'); 
}

 

XAMPP på din dator

Starta först även MySQL i XAMPP.
xamppmysql

Du kopplar upp dig mot MySQL med "localhost" oavsett om du använder det normalt eller använder någon annan port som localhost:8080. Användarnamn är "root" nu till en början då vi ännu inte har kunskaper om hur vi fixar nya users för databasen. Lösenordet är tomt.

<?php
$dbname = 'mindatabas';
$hostname = 'localhost';
$DB_USER = 'root';
$DB_PASSWORD = '';
$options  = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'");

try {
    $dbconn = new PDO("mysql:host=$hostname;dbname=$dbname;", $DB_USER, 
    $DB_PASSWORD, $options);
    $dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    /*** echo a message saying we have connected ***/
    echo 'Connected to database.<br />';
}
catch(PDOException $e){
    // For debug purpose, shows all connection details
    echo 'Connection failed: '.$e->getMessage()."<br />";
      // Hide connection details.
    //echo 'Could not connect to database.<br />'); 
}

Skapa först en databas genom att tanka ner phpMyAdmin och skapa en där.

Inkludera databasuppkopplingen i övriga filer

När vi nu lagt uppkopplingen i en separat fil så kan den lätt inkluderas i andra filer när vi behöver den.

<?php
include ('dbconnection.php');

Källor, referenser, bra länkar

www.php.net
w3schools.com/php/

Utvecklingsmiljöer

Labbservern

PHP 7.2, MariaDB 5.5 och Apache 2.4.6

Laragon

Apache 2.4, MySQL 5.7, PHP 7.4

Lösningsförslag

Alrik's