SlideShare a Scribd company logo
1 of 56
Diploma in Web Engineering
Module X: Working with MySQL
Databases
Rasan Samarasinghe
ESOFT Computer Studies (pvt) Ltd.
No 68/1, Main Street, Pallegama, Embilipitiya.
Contents
1. What is a Database?
2. The Relational Data Model
3. Relationships
4. Normalization
5. Functional Dependency
6. Normal Forms
7. DBMS
8. What is MySQL?
9. PHP Connect to MySQL
10. Create a MySQL Database
11. Connect to Database
12. Close Database
13. Create a MySQL Table
14. Insert Data Into MySQL
15. Get Last ID
16. Insert Multiple Records
17. Prepared Statements
18. Select Data From MySQL
19. Update Data in MySQL
20. Delete Data From MySQL
What is a Database?
Database is a collection of interrelated data items
that can be processed by one or more application
systems.
The Relational Data Model
Data elements are stored in different tables made
up of rows and columns. Relates data in different
tables through the use of common data element(s).
What is a Relation?
Data is presented to the user as tables:
• Tables are comprised of rows and a fixed number of
named columns.
• Columns are attributes describing an entity. Each column
must have an unique name and a data type.
The Relational Data Model
The Relational Data Model
The Relational Data Model
The Relational Data Model
Relationships
• One to One Relationship
• One to Many Relationship
• Many to Many Relationship
One to One Relationship
One to One Relationship
One to Many Relationship
One to Many Relationship
Many to Many Relationship
Many to Many Relationship
Normalization
• In relational database design, the process of
organizing data to minimize redundancy.
• Normalization usually involves dividing a database
into two or more tables and defining relationships
between the tables.
Advantages of Normalization
Reduction of data redundancy within tables:
 Reduce data storage space.
 Reduce inconsistency of data.
 Remove insert, update and delete anomalies.
 Improve flexibility of the system.
Functional Dependency
Normalization is a process based on Functional Dependencies.
Functional Dependency is a constraint between two attributes
or two sets of attributes
The functional dependency of B on A is represented by an
arrow: A → B
e.g.
NID → Name, Address, Birth date
VID → Model, Color
ISBN → Title, Author, Publisher
Normal Forms
 1NF any multi-valued columns have been
removed
 2NF any partial functional dependencies have
been removed
 3NF any transitive dependencies have been
removed
Purchase Order Relation in 0NF
Purchase Order Relation in 1NF
Problems - 1NF
INSERT PROBLEM
Cannot know available parts until an order is placed
(e.g. P4 is bush)
DELETE PROBLEM
Loose information of part P7 if we cancel purchase order
115 (e.g. Delete PO-PART for Part No P7)
UPDATE PROBLEM:
To change description of Part P3 we need to change every
record in PO-PART containing Part No P3
Purchase Order Relations in 2NF
Problems - 2NF
INSERT PROBLEM
Cannot know available suppliers until an order is placed
(e.g. 200 is hardware stores)
DELETE PROBLEM
Loose information of supplier 100 if we cancel purchase
order 116 (e.g. Delete PO for Supplier No 100)
UPDATE PROBLEM
To change name of Supplier 222 we need to change every
record in PO containing Supplier No 222
Purchase Order Relations in 3NF
Normalized Relations
Database Management Systems (DBMS)
DBMS is a software that enables users to define,
create, maintain and control the access to a
database.
DBMS Functions
A. Data Definition
B. Data Entry
C. Data Manipulation
D. Data Display
E. Data Security
F. Data Integrity
G. Backup and Recovery
What is MySQL?
• MySQL is a database system used on the web
• MySQL is a database system that runs on a server
• MySQL is ideal for both small and large applications
• MySQL is very fast, reliable, and easy to use
• MySQL uses standard SQL
• MySQL compiles on a number of platforms
• MySQL is free to download and use
• MySQL is developed, distributed, and supported by
Oracle Corporation
• MySQL is named after co-founder Monty Widenius's
daughter: My
PHP Connect to MySQL (object oriented)
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username,
$password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
PHP Connect to MySQL (procedural)
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username,
$password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
Create a MySQL Database (object oriented)
// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
echo "Database created successfully";
} else {
echo "Error creating database: " . $conn->error;
}
Create a MySQL Database (procedural)
// Create database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully";
} else {
echo "Error creating database: " .
mysqli_error($conn);
}
Connect to Database (object oriented)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username,
$password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
Connect to Database (procedural)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username,
$password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
Close Database
The connection will be closed automatically when
the script ends. To close the connection before, use
the following:
Object oriented:
$conn->close();
Procedural:
mysqli_close($conn);
Create a MySQL Table (object oriented)
// sql to create table
$sql = "CREATE TABLE tblStudent (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table tblStudent created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
Create a MySQL Table (procedural)
// sql to create table
$sql = "CREATE TABLE tblStudent (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Table tblStudent created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
Insert Data Into MySQL (object oriented)
$sql = "INSERT INTO tblStudent (firstname,
lastname, email)
VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')";
if ($conn->query($sql) === TRUE) {
echo "New record inserted successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
Insert Data Into MySQL (procedural)
$sql = "INSERT INTO tblStudent (firstname,
lastname, email)
VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')";
if (mysqli_query($conn, $sql)) {
echo "New record inseted successfully";
} else {
echo "Error: " . $sql . "<br>" .
mysqli_error($conn);
}
Get ID of The Last Inserted Record (object oriented)
$sql = "INSERT INTO tblStudent (firstname, lastname,
email)
VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')";
if ($conn->query($sql) === TRUE) {
$last_id = $conn->insert_id;
echo "New record created successfully. Last inserted
ID is: " . $last_id;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
Get ID of The Last Inserted Record (procedural)
$sql = "INSERT INTO tblStudent (firstname, lastname,
email)
VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')";
if (mysqli_query($conn, $sql)) {
$last_id = mysqli_insert_id($conn);
echo "New record created successfully. Last inserted
ID is: " . $last_id;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
Insert Multiple Records Into MySQL (object oriented)
$sql = "INSERT INTO MyGuests (firstname, lastname,
email)
VALUES ('Roshan', 'Nuwan', 'rosh@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname,
email)
VALUES ('Ruwan', 'Fernando', 'ruwa@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname,
email)
VALUES ('Lahi', 'Hasi', 'lahi@example.com')";
if ($conn->multi_query($sql) === TRUE) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
Insert Multiple Records Into MySQL (procedural)
$sql = "INSERT INTO MyGuests (firstname, lastname,
email)
VALUES ('Roshan', 'Nuwan', 'rosh@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname,
email)
VALUES ('Ruwan', 'Fernando', 'ruwa@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname,
email)
VALUES ('Lahi', 'Hasi', 'lahi@example.com')";
if (mysqli_multi_query($conn, $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
Prepared Statements
• Prepared Statements reduces parsing time as the
preparation on the query is done only once.
• Bound parameters minimize bandwidth to the
server as you need send only the parameters each
time, and not the whole query.
• Prepared statements are very useful against SQL
injections.
Prepared Statements
// prepare and bind
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname,
lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
// set parameters and execute
$firstname = "Janaka";
$lastname = "Sameera";
$email = "janaka@example.com";
$stmt->execute();
$firstname = "Mahura";
$lastname = "Gamlath";
$email = "madhu@example.com";
$stmt->execute();
echo "New records created successfully";
$stmt->close();
Prepared Statements
"INSERT INTO MyGuests (firstname, lastname,
email) VALUES (?, ?, ?)"
question mark (?) is where we want to substitute in
an integer, string, double or blob value.
Prepared Statements
$stmt->bind_param("sss", $firstname, $lastname,
$email);
binds the parameters to the SQL query and tells the
database what the parameters are.
First argument lists the types of data that the
parameters are.
i - integer
d - double
s - string
b - BLOB
Select Data From MySQL (object oriented)
$sql = "SELECT id, firstname, lastname FROM tblStudent";
$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";
}
Select Data From MySQL (procedural)
$sql = "SELECT id, firstname, lastname FROM tblStudent";
$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";
}
Update Data in MySQL (object oriented)
$sql = "UPDATE tblStudent SET lastname='Perera'
WHERE id=2";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
Update Data in MySQL (procedural)
$sql = "UPDATE tblStudent SET lastname='Perera'
WHERE id=2";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " .
mysqli_error($conn);
}
Delete Data From MySQL (object oriented)
$sql = "DELETE FROM tblStudent WHERE id=3";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
Delete Data From MySQL (procedural)
$sql = "DELETE FROM tblStudent WHERE id=3";
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " .
mysqli_error($conn);
}
The End
http://twitter.com/rasansmn

More Related Content

What's hot

Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Abou Bakr Ashraf
 
Introduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScriptIntroduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScripttmont
 
JavaScript introduction 1 ( Variables And Values )
JavaScript introduction 1 ( Variables And Values )JavaScript introduction 1 ( Variables And Values )
JavaScript introduction 1 ( Variables And Values )Victor Verhaagen
 
Map(), flatmap() and reduce() are your new best friends: simpler collections,...
Map(), flatmap() and reduce() are your new best friends: simpler collections,...Map(), flatmap() and reduce() are your new best friends: simpler collections,...
Map(), flatmap() and reduce() are your new best friends: simpler collections,...Chris Richardson
 
Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to JavascriptAnjan Banda
 
Charles Sharp: Java 8 Streams
Charles Sharp: Java 8 StreamsCharles Sharp: Java 8 Streams
Charles Sharp: Java 8 Streamsjessitron
 
Functional Principles for OO Developers
Functional Principles for OO DevelopersFunctional Principles for OO Developers
Functional Principles for OO Developersjessitron
 
Intro to Functional Programming
Intro to Functional ProgrammingIntro to Functional Programming
Intro to Functional ProgrammingHugo Firth
 
What You Need to Know about Lambdas
What You Need to Know about LambdasWhat You Need to Know about Lambdas
What You Need to Know about LambdasRyan Knight
 
Functional Programming With Scala
Functional Programming With ScalaFunctional Programming With Scala
Functional Programming With ScalaKnoldus Inc.
 
Introduction to Client-Side Javascript
Introduction to Client-Side JavascriptIntroduction to Client-Side Javascript
Introduction to Client-Side JavascriptJulie Iskander
 
Visula C# Programming Lecture 7
Visula C# Programming Lecture 7Visula C# Programming Lecture 7
Visula C# Programming Lecture 7Abou Bakr Ashraf
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondMario Fusco
 
3.1 javascript objects_DOM
3.1 javascript objects_DOM3.1 javascript objects_DOM
3.1 javascript objects_DOMJalpesh Vasa
 
Visula C# Programming Lecture 8
Visula C# Programming Lecture 8Visula C# Programming Lecture 8
Visula C# Programming Lecture 8Abou Bakr Ashraf
 

What's hot (20)

Knolx session
Knolx sessionKnolx session
Knolx session
 
Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6
 
Introduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScriptIntroduction to Functional Programming in JavaScript
Introduction to Functional Programming in JavaScript
 
JavaScript introduction 1 ( Variables And Values )
JavaScript introduction 1 ( Variables And Values )JavaScript introduction 1 ( Variables And Values )
JavaScript introduction 1 ( Variables And Values )
 
Map(), flatmap() and reduce() are your new best friends: simpler collections,...
Map(), flatmap() and reduce() are your new best friends: simpler collections,...Map(), flatmap() and reduce() are your new best friends: simpler collections,...
Map(), flatmap() and reduce() are your new best friends: simpler collections,...
 
For Beginners - C#
For Beginners - C#For Beginners - C#
For Beginners - C#
 
Basic c#
Basic c#Basic c#
Basic c#
 
Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to Javascript
 
Charles Sharp: Java 8 Streams
Charles Sharp: Java 8 StreamsCharles Sharp: Java 8 Streams
Charles Sharp: Java 8 Streams
 
Functional Principles for OO Developers
Functional Principles for OO DevelopersFunctional Principles for OO Developers
Functional Principles for OO Developers
 
Intro to Functional Programming
Intro to Functional ProgrammingIntro to Functional Programming
Intro to Functional Programming
 
What You Need to Know about Lambdas
What You Need to Know about LambdasWhat You Need to Know about Lambdas
What You Need to Know about Lambdas
 
Functional Programming With Scala
Functional Programming With ScalaFunctional Programming With Scala
Functional Programming With Scala
 
Introduction to Client-Side Javascript
Introduction to Client-Side JavascriptIntroduction to Client-Side Javascript
Introduction to Client-Side Javascript
 
Visula C# Programming Lecture 7
Visula C# Programming Lecture 7Visula C# Programming Lecture 7
Visula C# Programming Lecture 7
 
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyondFP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
 
Scala functions
Scala functionsScala functions
Scala functions
 
3.1 javascript objects_DOM
3.1 javascript objects_DOM3.1 javascript objects_DOM
3.1 javascript objects_DOM
 
Monadic Java
Monadic JavaMonadic Java
Monadic Java
 
Visula C# Programming Lecture 8
Visula C# Programming Lecture 8Visula C# Programming Lecture 8
Visula C# Programming Lecture 8
 

Viewers also liked

DIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image ManipulationDIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image ManipulationRasan Samarasinghe
 
DISE - Introduction to Project Management
DISE - Introduction to Project ManagementDISE - Introduction to Project Management
DISE - Introduction to Project ManagementRasan Samarasinghe
 
DITEC - Fundamentals in Networking (updated)
DITEC - Fundamentals in Networking (updated)DITEC - Fundamentals in Networking (updated)
DITEC - Fundamentals in Networking (updated)Rasan Samarasinghe
 
DISE - Windows Based Application Development in Java
DISE - Windows Based Application Development in JavaDISE - Windows Based Application Development in Java
DISE - Windows Based Application Development in JavaRasan Samarasinghe
 
DITEC - Fundamentals in Networking
DITEC - Fundamentals in NetworkingDITEC - Fundamentals in Networking
DITEC - Fundamentals in NetworkingRasan Samarasinghe
 
DISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementDISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementRasan Samarasinghe
 
DIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web DesigningDIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web DesigningRasan Samarasinghe
 
Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Rasan Samarasinghe
 
DITEC - Expose yourself to Internet & E-mail (second update)
DITEC - Expose yourself to Internet & E-mail (second update) DITEC - Expose yourself to Internet & E-mail (second update)
DITEC - Expose yourself to Internet & E-mail (second update) Rasan Samarasinghe
 
DITEC - Expose yourself to Internet & E-mail (updated)
DITEC - Expose yourself to Internet & E-mail (updated)DITEC - Expose yourself to Internet & E-mail (updated)
DITEC - Expose yourself to Internet & E-mail (updated)Rasan Samarasinghe
 
DITEC - Expose yourself to Internet & E-mail
DITEC - Expose yourself to Internet & E-mailDITEC - Expose yourself to Internet & E-mail
DITEC - Expose yourself to Internet & E-mailRasan Samarasinghe
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringRasan Samarasinghe
 

Viewers also liked (20)

DIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image ManipulationDIWE - Using Extensions and Image Manipulation
DIWE - Using Extensions and Image Manipulation
 
DISE - Introduction to Project Management
DISE - Introduction to Project ManagementDISE - Introduction to Project Management
DISE - Introduction to Project Management
 
DIWE - File handling with PHP
DIWE - File handling with PHPDIWE - File handling with PHP
DIWE - File handling with PHP
 
DITEC - Fundamentals in Networking (updated)
DITEC - Fundamentals in Networking (updated)DITEC - Fundamentals in Networking (updated)
DITEC - Fundamentals in Networking (updated)
 
DIWE - Fundamentals of PHP
DIWE - Fundamentals of PHPDIWE - Fundamentals of PHP
DIWE - Fundamentals of PHP
 
DISE - Windows Based Application Development in Java
DISE - Windows Based Application Development in JavaDISE - Windows Based Application Development in Java
DISE - Windows Based Application Development in Java
 
DITEC - Fundamentals in Networking
DITEC - Fundamentals in NetworkingDITEC - Fundamentals in Networking
DITEC - Fundamentals in Networking
 
DISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementDISE - Software Testing and Quality Management
DISE - Software Testing and Quality Management
 
DIWE - Advanced PHP Concepts
DIWE - Advanced PHP ConceptsDIWE - Advanced PHP Concepts
DIWE - Advanced PHP Concepts
 
DIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web DesigningDIWE - Coding HTML for Basic Web Designing
DIWE - Coding HTML for Basic Web Designing
 
Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++
 
Cuadernillo de-ejercicios
Cuadernillo de-ejerciciosCuadernillo de-ejercicios
Cuadernillo de-ejercicios
 
DITEC - Expose yourself to Internet & E-mail (second update)
DITEC - Expose yourself to Internet & E-mail (second update) DITEC - Expose yourself to Internet & E-mail (second update)
DITEC - Expose yourself to Internet & E-mail (second update)
 
DITEC - Expose yourself to Internet & E-mail (updated)
DITEC - Expose yourself to Internet & E-mail (updated)DITEC - Expose yourself to Internet & E-mail (updated)
DITEC - Expose yourself to Internet & E-mail (updated)
 
DITEC - Expose yourself to Internet & E-mail
DITEC - Expose yourself to Internet & E-mailDITEC - Expose yourself to Internet & E-mail
DITEC - Expose yourself to Internet & E-mail
 
DITEC - Software Engineering
DITEC - Software EngineeringDITEC - Software Engineering
DITEC - Software Engineering
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software Engineering
 
DISE - Programming Concepts
DISE - Programming ConceptsDISE - Programming Concepts
DISE - Programming Concepts
 
DITEC - E-Commerce & ASP.NET
DITEC - E-Commerce & ASP.NETDITEC - E-Commerce & ASP.NET
DITEC - E-Commerce & ASP.NET
 
DITEC - Programming with Java
DITEC - Programming with JavaDITEC - Programming with Java
DITEC - Programming with Java
 

Similar to DIWE - Working with MySQL Databases

FYBSC IT Web Programming Unit V Advanced PHP and MySQL
FYBSC IT Web Programming Unit V  Advanced PHP and MySQLFYBSC IT Web Programming Unit V  Advanced PHP and MySQL
FYBSC IT Web Programming Unit V Advanced PHP and MySQLArti Parab Academics
 
Database Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering College
Database Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering CollegeDatabase Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering College
Database Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering CollegeDhivyaa C.R
 
PHP - Getting good with MySQL part II
 PHP - Getting good with MySQL part II PHP - Getting good with MySQL part II
PHP - Getting good with MySQL part IIFirdaus Adib
 
PHP DATABASE MANAGEMENT.pptx
PHP DATABASE MANAGEMENT.pptxPHP DATABASE MANAGEMENT.pptx
PHP DATABASE MANAGEMENT.pptxCynthiaKendi1
 
Chapter 3.1.pptx
Chapter 3.1.pptxChapter 3.1.pptx
Chapter 3.1.pptxmebratu9
 
Synapse india reviews on php and sql
Synapse india reviews on php and sqlSynapse india reviews on php and sql
Synapse india reviews on php and sqlsaritasingh19866
 
All Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesAll Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesDave Stokes
 
PHP Database Programming Basics -- Northeast PHP
PHP Database Programming Basics -- Northeast PHPPHP Database Programming Basics -- Northeast PHP
PHP Database Programming Basics -- Northeast PHPDave Stokes
 
Learn PHP Lacture2
Learn PHP Lacture2Learn PHP Lacture2
Learn PHP Lacture2ADARSH BHATT
 
Module 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docx
Module 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docxModule 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docx
Module 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docxmoirarandell
 
Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Mohd Harris Ahmad Jaal
 
Database presentation
Database presentationDatabase presentation
Database presentationwebhostingguy
 

Similar to DIWE - Working with MySQL Databases (20)

FYBSC IT Web Programming Unit V Advanced PHP and MySQL
FYBSC IT Web Programming Unit V  Advanced PHP and MySQLFYBSC IT Web Programming Unit V  Advanced PHP and MySQL
FYBSC IT Web Programming Unit V Advanced PHP and MySQL
 
UNIT V (5).pptx
UNIT V (5).pptxUNIT V (5).pptx
UNIT V (5).pptx
 
Database Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering College
Database Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering CollegeDatabase Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering College
Database Connectivity MYSQL by Dr.C.R.Dhivyaa Kongu Engineering College
 
4.3 MySQL + PHP
4.3 MySQL + PHP4.3 MySQL + PHP
4.3 MySQL + PHP
 
Stored Procedure
Stored ProcedureStored Procedure
Stored Procedure
 
PHP - Getting good with MySQL part II
 PHP - Getting good with MySQL part II PHP - Getting good with MySQL part II
PHP - Getting good with MySQL part II
 
PHP DATABASE MANAGEMENT.pptx
PHP DATABASE MANAGEMENT.pptxPHP DATABASE MANAGEMENT.pptx
PHP DATABASE MANAGEMENT.pptx
 
Chapter 3.1.pptx
Chapter 3.1.pptxChapter 3.1.pptx
Chapter 3.1.pptx
 
Synapse india reviews on php and sql
Synapse india reviews on php and sqlSynapse india reviews on php and sql
Synapse india reviews on php and sql
 
PHP with MySQL
PHP with MySQLPHP with MySQL
PHP with MySQL
 
All Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesAll Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for Newbies
 
Mysql & Php
Mysql & PhpMysql & Php
Mysql & Php
 
PHP Database Programming Basics -- Northeast PHP
PHP Database Programming Basics -- Northeast PHPPHP Database Programming Basics -- Northeast PHP
PHP Database Programming Basics -- Northeast PHP
 
Learn PHP Lacture2
Learn PHP Lacture2Learn PHP Lacture2
Learn PHP Lacture2
 
Php summary
Php summaryPhp summary
Php summary
 
Module 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docx
Module 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docxModule 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docx
Module 6WEB SERVER AND SERVER SIDE SCRPTING, PART-2Chapte.docx
 
Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7
 
Database presentation
Database presentationDatabase presentation
Database presentation
 
MySQL with PHP
MySQL with PHPMySQL with PHP
MySQL with PHP
 
Php with MYSQL Database
Php with MYSQL DatabasePhp with MYSQL Database
Php with MYSQL Database
 

More from Rasan Samarasinghe

Managing the under performance in projects.pptx
Managing the under performance in projects.pptxManaging the under performance in projects.pptx
Managing the under performance in projects.pptxRasan Samarasinghe
 
Agile project management with scrum
Agile project management with scrumAgile project management with scrum
Agile project management with scrumRasan Samarasinghe
 
Application of Unified Modelling Language
Application of Unified Modelling LanguageApplication of Unified Modelling Language
Application of Unified Modelling LanguageRasan Samarasinghe
 
Advanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIAdvanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIRasan Samarasinghe
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Rasan Samarasinghe
 
Advanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with GitAdvanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with GitRasan Samarasinghe
 
DIWE - Programming with JavaScript
DIWE - Programming with JavaScriptDIWE - Programming with JavaScript
DIWE - Programming with JavaScriptRasan Samarasinghe
 
DIWE - Multimedia Technologies
DIWE - Multimedia TechnologiesDIWE - Multimedia Technologies
DIWE - Multimedia TechnologiesRasan Samarasinghe
 

More from Rasan Samarasinghe (12)

Managing the under performance in projects.pptx
Managing the under performance in projects.pptxManaging the under performance in projects.pptx
Managing the under performance in projects.pptx
 
Agile project management with scrum
Agile project management with scrumAgile project management with scrum
Agile project management with scrum
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
IT Introduction (en)
IT Introduction (en)IT Introduction (en)
IT Introduction (en)
 
Application of Unified Modelling Language
Application of Unified Modelling LanguageApplication of Unified Modelling Language
Application of Unified Modelling Language
 
Advanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST APIAdvanced Web Development in PHP - Understanding REST API
Advanced Web Development in PHP - Understanding REST API
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...
 
Advanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with GitAdvanced Web Development in PHP - Code Versioning and Branching with Git
Advanced Web Development in PHP - Code Versioning and Branching with Git
 
DIWE - Programming with JavaScript
DIWE - Programming with JavaScriptDIWE - Programming with JavaScript
DIWE - Programming with JavaScript
 
DIWE - Multimedia Technologies
DIWE - Multimedia TechnologiesDIWE - Multimedia Technologies
DIWE - Multimedia Technologies
 
DISE - Database Concepts
DISE - Database ConceptsDISE - Database Concepts
DISE - Database Concepts
 
DISE - OOAD Using UML
DISE - OOAD Using UMLDISE - OOAD Using UML
DISE - OOAD Using UML
 

Recently uploaded

Introduction to Geographic Information Systems
Introduction to Geographic Information SystemsIntroduction to Geographic Information Systems
Introduction to Geographic Information SystemsAnge Felix NSANZIYERA
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 
Memory Interfacing of 8086 with DMA 8257
Memory Interfacing of 8086 with DMA 8257Memory Interfacing of 8086 with DMA 8257
Memory Interfacing of 8086 with DMA 8257subhasishdas79
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsmeharikiros2
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARKOUSTAV SARKAR
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxkalpana413121
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
Path loss model, OKUMURA Model, Hata Model
Path loss model, OKUMURA Model, Hata ModelPath loss model, OKUMURA Model, Hata Model
Path loss model, OKUMURA Model, Hata ModelDrAjayKumarYadav4
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdfKamal Acharya
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesChandrakantDivate1
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...josephjonse
 
Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)ChandrakantDivate1
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"mphochane1998
 
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...manju garg
 

Recently uploaded (20)

Introduction to Geographic Information Systems
Introduction to Geographic Information SystemsIntroduction to Geographic Information Systems
Introduction to Geographic Information Systems
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Memory Interfacing of 8086 with DMA 8257
Memory Interfacing of 8086 with DMA 8257Memory Interfacing of 8086 with DMA 8257
Memory Interfacing of 8086 with DMA 8257
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systems
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Path loss model, OKUMURA Model, Hata Model
Path loss model, OKUMURA Model, Hata ModelPath loss model, OKUMURA Model, Hata Model
Path loss model, OKUMURA Model, Hata Model
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
 
Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
👉 Yavatmal Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top Class Call Girl S...
 

DIWE - Working with MySQL Databases

  • 1. Diploma in Web Engineering Module X: Working with MySQL Databases Rasan Samarasinghe ESOFT Computer Studies (pvt) Ltd. No 68/1, Main Street, Pallegama, Embilipitiya.
  • 2. Contents 1. What is a Database? 2. The Relational Data Model 3. Relationships 4. Normalization 5. Functional Dependency 6. Normal Forms 7. DBMS 8. What is MySQL? 9. PHP Connect to MySQL 10. Create a MySQL Database 11. Connect to Database 12. Close Database 13. Create a MySQL Table 14. Insert Data Into MySQL 15. Get Last ID 16. Insert Multiple Records 17. Prepared Statements 18. Select Data From MySQL 19. Update Data in MySQL 20. Delete Data From MySQL
  • 3. What is a Database? Database is a collection of interrelated data items that can be processed by one or more application systems.
  • 4. The Relational Data Model Data elements are stored in different tables made up of rows and columns. Relates data in different tables through the use of common data element(s).
  • 5. What is a Relation? Data is presented to the user as tables: • Tables are comprised of rows and a fixed number of named columns. • Columns are attributes describing an entity. Each column must have an unique name and a data type.
  • 10. Relationships • One to One Relationship • One to Many Relationship • Many to Many Relationship
  • 11. One to One Relationship
  • 12. One to One Relationship
  • 13. One to Many Relationship
  • 14. One to Many Relationship
  • 15. Many to Many Relationship
  • 16. Many to Many Relationship
  • 17. Normalization • In relational database design, the process of organizing data to minimize redundancy. • Normalization usually involves dividing a database into two or more tables and defining relationships between the tables.
  • 18. Advantages of Normalization Reduction of data redundancy within tables:  Reduce data storage space.  Reduce inconsistency of data.  Remove insert, update and delete anomalies.  Improve flexibility of the system.
  • 19. Functional Dependency Normalization is a process based on Functional Dependencies. Functional Dependency is a constraint between two attributes or two sets of attributes The functional dependency of B on A is represented by an arrow: A → B e.g. NID → Name, Address, Birth date VID → Model, Color ISBN → Title, Author, Publisher
  • 20. Normal Forms  1NF any multi-valued columns have been removed  2NF any partial functional dependencies have been removed  3NF any transitive dependencies have been removed
  • 23. Problems - 1NF INSERT PROBLEM Cannot know available parts until an order is placed (e.g. P4 is bush) DELETE PROBLEM Loose information of part P7 if we cancel purchase order 115 (e.g. Delete PO-PART for Part No P7) UPDATE PROBLEM: To change description of Part P3 we need to change every record in PO-PART containing Part No P3
  • 25. Problems - 2NF INSERT PROBLEM Cannot know available suppliers until an order is placed (e.g. 200 is hardware stores) DELETE PROBLEM Loose information of supplier 100 if we cancel purchase order 116 (e.g. Delete PO for Supplier No 100) UPDATE PROBLEM To change name of Supplier 222 we need to change every record in PO containing Supplier No 222
  • 28. Database Management Systems (DBMS) DBMS is a software that enables users to define, create, maintain and control the access to a database.
  • 29. DBMS Functions A. Data Definition B. Data Entry C. Data Manipulation D. Data Display E. Data Security F. Data Integrity G. Backup and Recovery
  • 30. What is MySQL? • MySQL is a database system used on the web • MySQL is a database system that runs on a server • MySQL is ideal for both small and large applications • MySQL is very fast, reliable, and easy to use • MySQL uses standard SQL • MySQL compiles on a number of platforms • MySQL is free to download and use • MySQL is developed, distributed, and supported by Oracle Corporation • MySQL is named after co-founder Monty Widenius's daughter: My
  • 31. PHP Connect to MySQL (object oriented) $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully";
  • 32. PHP Connect to MySQL (procedural) $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = mysqli_connect($servername, $username, $password); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully";
  • 33. Create a MySQL Database (object oriented) // Create database $sql = "CREATE DATABASE myDB"; if ($conn->query($sql) === TRUE) { echo "Database created successfully"; } else { echo "Error creating database: " . $conn->error; }
  • 34. Create a MySQL Database (procedural) // Create database $sql = "CREATE DATABASE myDB"; if (mysqli_query($conn, $sql)) { echo "Database created successfully"; } else { echo "Error creating database: " . mysqli_error($conn); }
  • 35. Connect to Database (object oriented) $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
  • 36. Connect to Database (procedural) $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); }
  • 37. Close Database The connection will be closed automatically when the script ends. To close the connection before, use the following: Object oriented: $conn->close(); Procedural: mysqli_close($conn);
  • 38. Create a MySQL Table (object oriented) // sql to create table $sql = "CREATE TABLE tblStudent ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )"; if ($conn->query($sql) === TRUE) { echo "Table tblStudent created successfully"; } else { echo "Error creating table: " . $conn->error; }
  • 39. Create a MySQL Table (procedural) // sql to create table $sql = "CREATE TABLE tblStudent ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )"; if (mysqli_query($conn, $sql)) { echo "Table tblStudent created successfully"; } else { echo "Error creating table: " . mysqli_error($conn); }
  • 40. Insert Data Into MySQL (object oriented) $sql = "INSERT INTO tblStudent (firstname, lastname, email) VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')"; if ($conn->query($sql) === TRUE) { echo "New record inserted successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
  • 41. Insert Data Into MySQL (procedural) $sql = "INSERT INTO tblStudent (firstname, lastname, email) VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')"; if (mysqli_query($conn, $sql)) { echo "New record inseted successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
  • 42. Get ID of The Last Inserted Record (object oriented) $sql = "INSERT INTO tblStudent (firstname, lastname, email) VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')"; if ($conn->query($sql) === TRUE) { $last_id = $conn->insert_id; echo "New record created successfully. Last inserted ID is: " . $last_id; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
  • 43. Get ID of The Last Inserted Record (procedural) $sql = "INSERT INTO tblStudent (firstname, lastname, email) VALUES ('Hirosh', 'Nuwan', 'hiro@example.com')"; if (mysqli_query($conn, $sql)) { $last_id = mysqli_insert_id($conn); echo "New record created successfully. Last inserted ID is: " . $last_id; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
  • 44. Insert Multiple Records Into MySQL (object oriented) $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Roshan', 'Nuwan', 'rosh@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Ruwan', 'Fernando', 'ruwa@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Lahi', 'Hasi', 'lahi@example.com')"; if ($conn->multi_query($sql) === TRUE) { echo "New records created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
  • 45. Insert Multiple Records Into MySQL (procedural) $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Roshan', 'Nuwan', 'rosh@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Ruwan', 'Fernando', 'ruwa@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Lahi', 'Hasi', 'lahi@example.com')"; if (mysqli_multi_query($conn, $sql)) { echo "New records created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
  • 46. Prepared Statements • Prepared Statements reduces parsing time as the preparation on the query is done only once. • Bound parameters minimize bandwidth to the server as you need send only the parameters each time, and not the whole query. • Prepared statements are very useful against SQL injections.
  • 47. Prepared Statements // prepare and bind $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $firstname, $lastname, $email); // set parameters and execute $firstname = "Janaka"; $lastname = "Sameera"; $email = "janaka@example.com"; $stmt->execute(); $firstname = "Mahura"; $lastname = "Gamlath"; $email = "madhu@example.com"; $stmt->execute(); echo "New records created successfully"; $stmt->close();
  • 48. Prepared Statements "INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)" question mark (?) is where we want to substitute in an integer, string, double or blob value.
  • 49. Prepared Statements $stmt->bind_param("sss", $firstname, $lastname, $email); binds the parameters to the SQL query and tells the database what the parameters are. First argument lists the types of data that the parameters are. i - integer d - double s - string b - BLOB
  • 50. Select Data From MySQL (object oriented) $sql = "SELECT id, firstname, lastname FROM tblStudent"; $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"; }
  • 51. Select Data From MySQL (procedural) $sql = "SELECT id, firstname, lastname FROM tblStudent"; $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"; }
  • 52. Update Data in MySQL (object oriented) $sql = "UPDATE tblStudent SET lastname='Perera' WHERE id=2"; if ($conn->query($sql) === TRUE) { echo "Record updated successfully"; } else { echo "Error updating record: " . $conn->error; }
  • 53. Update Data in MySQL (procedural) $sql = "UPDATE tblStudent SET lastname='Perera' WHERE id=2"; if (mysqli_query($conn, $sql)) { echo "Record updated successfully"; } else { echo "Error updating record: " . mysqli_error($conn); }
  • 54. Delete Data From MySQL (object oriented) $sql = "DELETE FROM tblStudent WHERE id=3"; if ($conn->query($sql) === TRUE) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . $conn->error; }
  • 55. Delete Data From MySQL (procedural) $sql = "DELETE FROM tblStudent WHERE id=3"; if (mysqli_query($conn, $sql)) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . mysqli_error($conn); }

Editor's Notes

  1. Record/Tuple – A row in a Relation Field /Attribute – A column in a Relation Domain – Set of values of an Attribute Degree – The number of Fields in a Relation Cardinality – the number of Records in a Relation Null – the value not given or unknown for a field.
  2. Can record data about a Department even if there is NO Employees assigned to it Entity instances can exists on its own. i.e. independent of other instances Department data are not repeated for all their employees Avoids inconsistent problem e.g. change of manager
  3. Normalisation is a set of data design standards. It is a process of decomposing unsatisfactory relations into smaller relations. Like entity–relationship modelling were developed as part of database theory.
  4. INSERT PROBLEM Cannot know available parts until an order is placed (e.g. P4 is bush) DELETE PROBLEM Loose information of part P7 if we cancel purchase order 115 (e.g. Delete PO-PART for Part No P7) UPDATE PROBLEM: To change description of Part P3 we need to change every record in PO-PART containing Part No P3
  5. INSERT PROBLEM Cannot know available suppliers until an order is placed (e.g. 200 is hardware stores) DELETE PROBLEM Loose information of supplier 100 if we cancel purchase order 116 (e.g. Delete PO for Supplier No 100) UPDATE PROBLEM To change name of Supplier 222 we need to change every record in PO containing Supplier No 222