* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download MySQL
Relational algebra wikipedia , lookup
Serializability wikipedia , lookup
Microsoft Access wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Team Foundation Server wikipedia , lookup
Oracle Database wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Functional Database Model wikipedia , lookup
Ingres (database) wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Versant Object Database wikipedia , lookup
ContactPoint wikipedia , lookup
Clusterpoint wikipedia , lookup
IT420: Database Management
and Organization
MySQL and PHP
3 March 2006
Adina Crainiceanu
www.cs.usna.edu/~adina
Web Database Architecture
HTTP
Client browser
Web server with
PHP enabled
API
Database
Management
System
Why Use DBMS?
Fast access to data
Queries to easily extract data
Built-in concurrency control
Built-in security control
Learned So Far…
HTTP
Client browser
Web server with
PHP enabled
API
Database
Management
System
Goals Today
MySQL
Connect from PHP to MySQL
MySQL
Relational Database Management System
Free
Open source
Portable
High performance
Support available
Working with MySQL
SQL Monitor
Always available
Write SQL statements
; after each statement!
PHPMyAdmin
Current Settings
Each machine is a server – web, db
Web server: localhost:80
MySQL server: localhost:3306
MySQL user: root, no password
ALL privileges
Disk location D:/sokkit
site/
mysql/
Lab Demo
Start MySQL server
Use MySQL – local machine
Lab Exercise
Start MySQL server
Sokkit Control Panel Start database
Start MySQL monitor
D:/sokkit/mysql/bin/mysql –u root
Create a database called vp5fund
create database vp5fund;
Check database was created
show databases;
SQL for MySQL
Surrogate keys variant:
AUTO_INCREMENT
If column value left blank, generated value =
max+1
show
databases
tables
describe tableName
VP-5 MVR Fund Raiser Application
Lab Exercise
To use the database just created:
use vp5fund;
Create table (use SQL)
Items(ItemName, Price)
Orders(OrderID, ShippingAddress)
ItemsOrdered(OrderID, ItemName, Quantity)
Insert few rows in tables
List all rows in Orders table (use SQL)
Example Application
Database: dbmusic
Table: songs(ISBN, Title, SingerID, Length)
Use DBMS from PHP
Connect to the database server
Specify database to use
Send queries and retrieve results
Process results
Close connection
All PHP functions return ‘false‘ if operation
unsuccessful!
Example:
$searchterm = $_POST['searchterm'];
//connect
@ $db = mysql_connect('localhost','root');
if (!$db){
echo('connect failed');
exit;
}
$dbselected= mysql_select_db('dbmusic') or exit('could not select db');
//query
$query = "select * from songs where Title like '%$searchterm%'";
//process results
$results = mysql_query($query) or die("could not retrieve rows");
while ($row = mysql_fetch_row($results)){
echo 'Title: '.$row[1].' <br>';
}
//close connection
mysql_free_result($results);
mysql_close($db);
Connect to MySQL
dbconnection mysql_connect(servername,
username, [password])
Always test and handle errors!
Example:
$dbconn = mysql_connect(‘localhost’,’root’);
if (!$dbconn){
echo ‘Could not connect to db. Exit’;
exit;
}
Select Database to Use
bool mysql_db_select(dbname,
[dbconnection])
Always test and handle errors!
Example:
$dbs = mysql_db_select(‘dbmusic’) or
die(‘Could not select db’);
Query the Database
qresult mysql_query(query)
Example:
$query = “select * from songs where Title like
‘%home%’ ”;
$results = mysql_query($query);
Process Results
nbrows = mysql_num_rows(qresult)
row = mysql_fetch_row(qresult)
row = mysql_fetch_array(qresult)
Example:
while ($row = mysql_fetch_row($results)){
foreach($row as $column) echo “$column ”;
echo “<br />”;
}
Disconnect from Database
Free query results
mysql_free_result(qresult);
Close connection
mysql_close(connection)
Lab Exercise
Save order data from VP-5 Fund Raiser
application into vp5fund database. Display
appropriate message in order confirmation
screen.
Display all orders from VP-5 Fund Raiser
application.
Display all orders from VP-5 Fund Raiser
application with shipping address in
Maryland.
Save Your Work!
Copy the
D:\sokkit\mysql\data\yourdatabase
directory to your X drive