IT420: Database Management and Organization MySQL and PHP 3 March 2006

advertisement
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
Download