You are on page 1of 25

Βάση δεδομένων PHP MySQL

Με την PHP, μπορείτε να συνδεθείτε και να χειριστείτε


βάσεις δεδομένων.

Η MySQL είναι το πιο δημοφιλές σύστημα βάσης


δεδομένων που χρησιμοποιείται με την PHP.
Τι είναι η MySQL;
•Η MySQL είναι ένα σύστημα βάσης δεδομένων που χρησιμοποιείται στο διαδίκτυο
•Η MySQL είναι ένα σύστημα βάσης δεδομένων που εκτελείται σε διακομιστή
•Η MySQL είναι ιδανική τόσο για μικρές όσο και για μεγάλες εφαρμογές
•Η MySQL είναι πολύ γρήγορη, αξιόπιστη και εύκολη στη χρήση
•Η MySQL χρησιμοποιεί τυπική SQL
•Η MySQL μεταγλωττίζεται σε διάφορες πλατφόρμες
•Η MySQL είναι δωρεάν για λήψη και χρήση
•Η MySQL αναπτύσσεται, διανέμεται και υποστηρίζεται από την Oracle Corporation
•Η MySQL πήρε το όνομά της από την κόρη του συνιδρυτή Monty Widenius:My

Τα δεδομένα σε μια βάση δεδομένων MySQL αποθηκεύονται σε πίνακες. Ένας


πίνακας είναι μια συλλογή σχετικών δεδομένων και αποτελείται από στήλες και
γραμμές.
Σύστημα βάσης δεδομένων PHP + MySQL
Η PHP σε συνδυασμό με τη MySQL είναι cross-
platform (μπορείτε να αναπτύξετε σε
Windows και να εξυπηρετήσετε σε μια
πλατφόρμα Unix)

Οι βάσεις δεδομένων είναι χρήσιμες για την κατηγορηματική αποθήκευση


πληροφοριών.
Μια εταιρεία μπορεί να έχει μια βάση δεδομένων με τους ακόλουθους
πίνακες:
Υπαλλήλους
Προϊόντα
Οι πελάτες
Παραγγελίες
Η PHP 5 και νεότερη έκδοση μπορεί να λειτουργήσει με μια
βάση δεδομένων MySQL χρησιμοποιώντας:
Επέκταση MySQLi (το "i" σημαίνει βελτιωμένη)
PDO (Αντικείμενα δεδομένων PHP)
Οι προηγούμενες εκδόσεις της PHP χρησιμοποιούσαν την
επέκταση MySQL. Ωστόσο, αυτή η επέκταση καταργήθηκε το
2012.
Πρέπει να χρησιμοποιήσω MySQLi ή PDO;
Εάν χρειάζεστε μια σύντομη απάντηση, θα ήταν "Ό,τι θέλετε".

Τόσο το MySQLi όσο και το PDO έχουν τα πλεονεκτήματά τους:


Το PDO θα λειτουργεί σε 12 διαφορετικά συστήματα βάσεων δεδομένων, ενώ
το MySQLi θα λειτουργεί μόνο με βάσεις δεδομένων MySQL.

Έτσι, εάν πρέπει να αλλάξετε το έργο σας σε άλλη βάση δεδομένων, το PDO
διευκολύνει τη διαδικασία.
Πρέπει μόνο να αλλάξετε τη συμβολοσειρά σύνδεσης και μερικά ερωτήματα.

Με το MySQLi, θα χρειαστεί να ξαναγράψετε ολόκληρο τον κώδικα -


περιλαμβάνονται τα ερωτήματα.
Και τα δύο είναι αντικειμενοστραφή, αλλά το MySQLi προσφέρει επίσης ένα
διαδικαστικό API.
Create a MySQL Database Using MySQLi Object-oriented
<?php
$servername = "localhost";
$username = "root";
$password = "";

Δημιουργήστε μια βάση // Create connection


δεδομένων MySQL $conn = new mysqli($servername, $username, $password);
χρησιμοποιώντας MySQLi // Check connection
και PDO if ($conn->connect_error) {
Η δήλωση CREATE die("Connection failed: " . $conn->connect_error);
DATABASE χρησιμοποιείται }
για τη δημιουργία μιας
βάσης δεδομένων στη // Create database
MySQL. $sql = "CREATE DATABASE myDB";
Τα ακόλουθα if ($conn->query($sql) === TRUE) {
παραδείγματα echo "Database created successfully";
δημιουργούν μια βάση } else {
δεδομένων με το όνομα echo "Error creating database: " . $conn->error;
"myDB": }

$conn->close();
?>
Καλύτερο !!
Example (MySQLi Procedural)

<?php
$servername = "localhost";
$username = “root";
$password = ”";

// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

// Create database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully";
} else {
echo "Error creating database: " . mysqli_error($conn);
}

mysqli_close($conn);
?>
PDO

<?php
$servername = "localhost";
$username = “root";
$password = ”";

try {
$conn = new PDO("mysql:host=$servername", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE DATABASE myDBPDO";
// use exec() because no results are returned
$conn->exec($sql);
echo "Database created successfully<br>";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}

$conn = null;
?>
PHP Connect to MySQL

Ανοίξτε μια σύνδεση με MySQL


Για να μπορέσουμε να έχουμε πρόσβαση σε
δεδομένα στη βάση δεδομένων MySQL,
πρέπει να είμαστε σε θέση να συνδεθούμε
στον διακομιστή:
Παράδειγμα (MySQLi Object-Oriented)

<?php
$servername = "localhost";
$username = "root";
$password = "";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Example (MySQLi Procedural)

<?php
$servername = "localhost";
$username = “root";
$password = ”";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
PDO

<?php
$servername = "localhost";
$username = ”root";
$password = ”";

try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username,
$password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
PHP MySQL Δημιουργία πίνακα

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

Δημιουργήστε έναν πίνακα MySQL χρησιμοποιώντας MySQLi και PDO

Η πρόταση CREATE TABLE χρησιμοποιείται για τη δημιουργία πίνακα στη


MySQL.

Θα δημιουργήσουμε έναν πίνακα με το όνομα "MyGuests", με πέντε στήλες:


"id", "firstname", "lastname", "email" και "reg_date":

CREATE TABLE MyGuests (


id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
)
Σημειώσεις στον παραπάνω πίνακα:

NOT NULL - Κάθε γραμμή πρέπει να περιέχει μια τιμή για αυτήν τη στήλη, οι
μηδενικές τιμές δεν επιτρέπονται.
DEFAULT - Ορίστε μια προεπιλεγμένη τιμή που προστίθεται όταν δεν μεταβιβάζεται
άλλη τιμή
UNSIGNED - Χρησιμοποιείται για τύπους αριθμών, περιορίζει τα αποθηκευμένα
δεδομένα σε θετικούς αριθμούς και μηδέν
AUTO_INCREMENT - Η MySQL αυξάνει αυτόματα την τιμή του πεδίου κατά 1 κάθε
φορά που προστίθεται μια νέα εγγραφή
PRIMARY KEY - Χρησιμοποιείται για τον μοναδικό προσδιορισμό των σειρών σε έναν
πίνακα. Η στήλη με τη ρύθμιση PRIMARY KEY είναι συχνά αριθμός αναγνωριστικού
και χρησιμοποιείται συχνά με AUTO_INCREMENT
<?php
$servername = "localhost"; $username = "root"; $password = "“;$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
?> Παράδειγμα (MySQLi Object-Oriented)
<?php
$servername = "localhost"; $username = “root“;$password = ”“;$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
?> Example (MySQLi Procedural)
<?php
$servername = "localhost“;$username = “root“;$password = "“;$dbname = "myDBPDO";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,
$password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
// use exec() because no results are returned
$conn->exec($sql);
echo "Table MyGuests created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
PDO
?>
PHP MySQL Insert Data

Εισαγάγετε δεδομένα στη MySQL χρησιμοποιώντας MySQLi και PDO


Αφού δημιουργηθεί μια βάση δεδομένων και ένας πίνακας, μπορούμε να
αρχίσουμε να προσθέτουμε δεδομένα σε αυτά.
Ακολουθούν ορισμένοι κανόνες σύνταξης που πρέπει να ακολουθήσετε:
Το ερώτημα SQL πρέπει να αναφέρεται σε PHP
Οι τιμές συμβολοσειράς μέσα στο ερώτημα SQL πρέπει να αναφέρονται
Οι αριθμητικές τιμές δεν πρέπει να αναφέρονται
Η λέξη NULL δεν πρέπει να αναφέρεται
Η πρόταση INSERT INTO χρησιμοποιείται για την προσθήκη νέων εγγραφών σε
έναν πίνακα MySQL:

INSERT INTO table_name (column1, column2, column3,...)


VALUES (value1, value2, value3,...)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {


echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?> Παράδειγμα (MySQLi Object-Oriented)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?> Example (MySQLi Procedural)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDBPDO";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,
$password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}

$conn = null;
?>
PDO
PHP MySQL Επιλέξτε Δεδομένα

Η δήλωση SELECT χρησιμοποιείται για την επιλογή δεδομένων από έναν ή


περισσότερους πίνακες:
SELECT column_name(s) FROM table_name
ή μπορούμε να χρησιμοποιήσουμε τον χαρακτήρα * για να επιλέξουμε ΟΛΕΣ
τις στήλες από έναν πίνακα:
SELECT * FROM table_name
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Παράδειγμα (MySQLi Object-Oriented)
<?php
$servername = "localhost";
$username = "root";
$password = ”"";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?> Example (MySQLi Procedural)
PHP MySQL Delete Data

You might also like