Μαθήματα Πληροφορικής & Προγραμματισμού

Σύνδεση PHP και MySQL – Data driven websites

Σύνδεση PHP και MySQL

php mysql connection

Για να μπορέσουμε να πάρουμε πληροφορίες από μια βάση δεδομένων του MySQL server και να τις εισάγουμε σε μια ιστοσελίδα, πρώτα θα χρειαστεί να καθιερώσουμε μια ΣΥΝΔΕΣΗ (connection) με την MySQL. Ο πιο συνήθεις τρόπος για να γίνει αυτό, είναι με κλήση της έτοιμης συνάρτησης mysql_connect() της PHP, η οποία δημιουργεί αυτή τη σύνδεση και η σύνταξη της είναι η παρακάτω:

mysql_connect(<IP_διεύθυνση>, <όνομα_χρήστη>, <συνθηματικό>);

Όπου:

  • IP_διεύθυνση (ή hostname) είναι τα στοιχεία του υπολογιστή στον οποίο εκτελείται το λογισμικό του MySQL server. Συνήθως η τιμή που δίνουμε εδώ είναι “localhost” αν εκτελείται στον ίδιο υπολογιστή με το λογισμικό του web server, και
  • τα όνομα_χρήστη και συνθηματικό είναι τα ίδια με τα user name και password της MySQL που χρησιμοποιήσαμε για να συνδεθούμε στον MySQL server.

Σύνδεση PHP και MySQL – τρόπος σύνταξης σύνδεσης με τον server

Η συνάρτηση mysql_connect() επιστρέφει μια τιμή (έναν αριθμό) για να μπορούμε να αναγνωρίσουμε τη σύνδεση (connection). Μπορούμε να κρατήσουμε αυτή την τιμή σε μια μεταβλητή, ως εξής:

$dbconn = mysql_connect("localhost", "root", "passwd");

Η τιμή που επιστρέφει η συνάρτηση mysql_connect(), ως αναγνωριστικό σύνδεσης (connection identifier), είναι πλέον αποθηκευμένη στην μεταβλητή $dbconn.

Εφόσον ο MySQL server αποτελεί ένα αυτόνομο λογισμικό, υπάρχει η πιθανότητα να μην είναι διαθέσιμος ή να μην είναι προσβάσιμος λόγο π.χ. μιας βλάβης στο δίκτυο ή τα στοιχεία username/password που δώσαμε δεν υπάρχουν στον server, κλπ. Σε μια τέτοια περίπτωση, η συνάρτηση mysql_connect() δεν επιστρέφει κάποιο connection identifier εφόσον η προσπάθεια σύνδεσης δεν ήταν επιτυχημένη και θα μας επιστρέψει την τιμή false (δηλαδή η μεταβλητή $dbconn της εντολής σύνδεσης, θα έχει πλέον την τιμή false).

Με έλεγχο της τιμής της μεταβλητής $dbconn σε μια εντολή if, μπορούμε να διαπιστώσουμε αν έγινε η επιθυμητή σύνδεση. Δείτε το παρακάτω παράδειγμα κώδικα:

$dbconn = @mysql_connect("localhost", "root", "passwd");
if (!$dbconn) {   // εάν not false (δηλαδή η συνάρτηση επέστρεψε false, συνεπώς το not false θα γίνει true
   echo("Η σύνδεση με τον server απέτυχε - ελέγξτε τα συνθηματικά εισόδου σας ή ξαναδοκιμάστε αργότερα."); 
   exit(); //έξοδος - δεν πραγματοποείται άλλη εκτέλεση κώδικα 
}

Σύνδεση PHP και MySQL – Επεξήγηση του παραπάνω κώδικα:

Προσέξτε το σύμβολο @ μπροστά από τη συνάρτηση mysql_connect(): επειδή πολλές συναρτήσεις, όπως και η mysql_connect(), εμφανίζουν αυτόματα μηνύματα λάθους όταν υπάρξει πρόβλημα, η τοποθέτηση του συμβόλου @ μπροστά από το όνομα μιας συνάρτησης θα αποτρέψει το μήνυμα λάθους της συνάρτησης, έτσι ώστε να συντάξουμε το δικό μας μήνυμα λάθους, που θα είναι πιο φιλικό (και στην γλώσσα που επιθυμούμε).

Προσέξτε το θαυμαστικό ! μπροστά από τη μεταβλητή $dbconn μέσα στον έλεγχο της συνθήκης if: αν η σύνδεση αποτύχει και η συνάρτηση mysql_connect() επιστρέψει false, τότε η πρόταση !$dbconn θα γίνει ίση με true με αποτέλεσμα την εκτέλεση των εντολών που βρίσκονται μέσα στο σώμα της εντολής if. Σε οποιαδήποτε άλλη περίπτωση το !$dbconn δεν θα γίνει ποτέ true (συνεπώς έχει επιτευχθεί και η σύνδεση). Αυτό ισχύει διότι, η τιμή σύνδεσης (connection identifier) που είναι αποθηκευμένη στη μεταβλητή $dbconn θα γίνει ίση με true. [ms_alert icon=”fa-info” box_shadow=”no” dismissable=”no” class=”” id=””]Θυμήσου ότι κάθε αριθμός που είναι διαφορετικός από το 0 θεωρείται ότι είναι true.[/ms_alert]

Προσέξτε τη συνάρτηση exit(): η οποία αναγκάζει την PHP να σταματήσει να διαβάζει τον υπόλοιπο κώδικα στην σελίδα. Με αυτό τον τρόπο, σε μια αποτυχημένη σύνδεση με μια βάση δεδομένων, η σελίδα δεν θα είναι σε θέση να εμφανίσει κάποιες χρήσιμες πληροφορίες χωρίς αυτή τη σύνδεση, συνεπώς η συνέχεια της εκτέλεσης δεν έχει νόημα.

Σύνδεση PHP και MySQL – Σύνδεση επιτυχημένη: επιλογή βάσης

php database connectionΣτην συνέχεια και εφόσον έχει ολοκληρωθεί η σύνδεση, μπορούμε να επιλέξουμε τη βάση δεδομένων με την οποία θέλουμε να ασχοληθούμε και να πάρουμε, να αλλάξουμε ή να στείλουμε πληροφορίες σε αυτή.

Αυτό γίνεται με την έτοιμη συνάρτηση mysql_select_db(), ως εξής:

mysql_select_db("my_database", $dbconn);

Σύνδεση PHP και MySQL – Επεξήγηση του παραπάνω κώδικα:

Η πρώτη παράμετρος παίρνει ως τιμή το όνομα της βάσης που θέλουμε να συνδεθούμε (εδώ my_database) και η δεύτερη παράμετρος την τιμής της μεταβλητής $dbconn που περιέχει το δικό μας πλέον αναγνωριστικό σύνδεσης της βάσης δεδομένων (database connection identifier). Μην ξεχνάτε ότι στην βάση μπορεί να είναι συνδεδεμένες και άλλες εφαρμογές, με το δικό τους αναγνωριστικό σύνδεσης.

[ms_alert icon=”fa-info” box_shadow=”no” dismissable=”no” class=”” id=””]Σημείωση: Αυτή είναι μια προαιρετική παράμετρος και όταν παραλείπεται, η συνάρτηση θα χρησιμοποιήσει αυτόματα το αναγνωριστικό σύνδεσης (link identifier) της τελευταίας σύνδεσης που έχει ανοιχθεί.[/ms_alert]

Και αυτή η συνάρτηση θα επιστρέψει true όταν η επιλογή της βάσης είναι επιτυχής και false αν παρουσιαστεί κάποιο πρόβλημα (π.χ. δεν υπάρχει τέτοιο όνομα βάσης). Με τον ίδιο τρόπο λογικού ελέγχου όπως και στην σύνδεση με τoν MySQL server, μπορούμε να κάνουμε έλεγχο σύνδεσης και παρουσίαση μηνύματος λάθους αν υπάρξει πρόβλημα:

if (! @mysql_select_db("my_database", $dbconn)){
   echo( "Η σύνδεση με την βάση απέτυχε - ελέγξτε το όνομα της βάσης ή ξαναδοκιμάστε αργότερα." ); 
   exit(); 
}

Στην συνέχεια και εφόσον έχει καταστεί με επιτυχία η σύνδεση με μια βάση δεδομένων, μπορούμε να χρησιμοποιήσουμε τις πληροφορίες που βρίσκονται σε αυτή.

Αφήστε ένα Σχόλιο

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.