Език за работа с данни.
Той позволява:
SET NAMES utf8;
SELECT * FROM MAJORS
SELECT NAME, ACADEMIC_DEGREE FROM MAJORS
SELECT * FROM MAJORS WHERE NAME = 'Software Engineering'
SELECT * FROM MAJORS WHERE START_YEAR = 2011
INSERT INTO MAJORS (NAME, ACADEMIC_DEGREE) VALUES ('Software Eginnering', 'bachelor')
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
Типове SQL JOIN:
[от Уикипедия, свободната енциклопедия] MySQL SQL система за управление на бази данни (СУБД) с повече от шест милиона инсталации.
В PHP има разширения(Extensions), които надграждат основната функционалност на езика. PHP Data Objects (PDO) е едно такова разширение.
Дефинира лек, консистентен интерфейс за работа с различни СУБД.
Предоставя абстрактен слой за работа с данни.
СУБД която използвате е без значение, защото интерфейса е еднакъв - MS SQL Server, DB2, MySQL, Oracle, PostgreSQL, SQLite....
<?php
$user = 'username';
$pass = 'password';
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use the connection here
// and now we're done; close it
$dbh = null;
?>
<?php
$host = "localhost";
$db = "my_db";
$user = "root";
$pass = ""
$conn = new PDO("mysql:host=$host;dbname=$db",$user,$pass);
$sql = "SELECT * FROM MAJORS";
$query = $conn->query($sql) or die("failed!");
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo $row['NAME'];
}
<?php
// ...
echo '<ul>';
while($row = $q->fetch(PDO::FETCH_ASSOC)){
echo '<li>'.$row['NAME'].'</li>';
}
echo '</ul>';
Заявка, записан в базата от данни и която може да се изпълнява многократно с подаване на различни данни.
Етапи:
Защо да ги ползваме?
<?php
$stmt = $conn->prepare("
INSERT INTO electives (title, academic_degree)
VALUES (:title, :academic_degree)");
$stmt->bindParam(':title', $title);
$stmt->bindParam(':academic_degree', $academic_degree);
$title = 'Programming with Go';
$academic_degree = 'bachelor';
$stmt->execute();
$title = 'Mining Data from Text';
$academic_degree = 'master';
$stmt->execute();
?>
<?php
echo '<ul>';
$stmt = $conn->prepare("SELECT * FROM electives where academic_degree = ?");
if ($stmt->execute(array('bachelor'))) {
while ($row = $stmt->fetch()) {
echo '<li>'.$row["NAME"].'</li>';
}
}
echo '</ul>';
?>
<?php
$conn->beginTransaction();
$sql = 'INSERT INTO electives (title, academic_degree) VALUES (?, ?)';
$sth = $conn->prepare($sql);
foreach ($electives as $elective) {
$sth->execute(array(
$elective->title,
$elective->academic_degree,
));
}
$dbh->commit();
?>
<?php
$conn->beginTransaction();
$sth = $conn->exec("DROP TABLE electives");
$conn->rollBack();
?>
Имате база от данни със следната таблица и данни:
CREATE TABLE electives
(
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(128),
description VARCHAR(1024),
lecturer VARCHAR(128)
);
INSERT INTO electives (title, description, lecturer)
VALUES ("Programming with Go", "Let's learn Go", "Nikolay Batchiyski");
INSERT INTO electives (title, description, lecturer)
VALUES ("AKDU", "Let's Graduate", "Svetlin Ivanov");
INSERT INTO electives (title, description, lecturer)
VALUES ("Web technologies", "Let's learn the web", "Milen Petrov");
Имплементирайте php страница с форма и валидация за добавяне на избираема дисциплина.
Добавете колона created_at на таблицата electives.
Трябва по подразбиране да сочи момента на добавяне на реда.
Добавете функционалност за редактиране на избираема дисциплина.
Например: HTTP PUT на /electives.php/1 със съответните параметри трябва да промени избираемата с id 1.