0% found this document useful (0 votes)
2 views33 pages

07 Php Mysql

This lecture covers the basics of using PHP with MySQL, including SQL fundamentals, database access, and table management. It explains how to create, modify, and query tables in MySQL, as well as how to use PHP to interact with the database. Key SQL commands such as SELECT, INSERT, UPDATE, and DELETE are demonstrated with examples to illustrate their usage.

Uploaded by

randa19112013
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views33 pages

07 Php Mysql

This lecture covers the basics of using PHP with MySQL, including SQL fundamentals, database access, and table management. It explains how to create, modify, and query tables in MySQL, as well as how to use PHP to interact with the database. Key SQL commands such as SELECT, INSERT, UPDATE, and DELETE are demonstrated with examples to illustrate their usage.

Uploaded by

randa19112013
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Lecture 7: PHP with MySQL

Ouissem Ben Fredj


Ouissem.BenFredj@gmail.com
http://lms.tu.edu.sa/
502261-3 – Web Systems

Taif University
College of Computers and Information Technology
Objectives

In the next lectures you will learn


● What is SQL
● How to access mySQL database
● How to create a basic mySQL database
● How to use some basic queries
● How to use PHP and mySQL
Introduction to SQL
SQL is an ANSI (American National Standards Institute) standard computer
language
for accessing and manipulating databases.
● SQL stands for Structured Query Language
● using SQL can you can
● access a database
● execute queries, and retrieve data
● insert, delete and update records
● SQL works with database programs like MS Access, DB2, Informix, MS SQL
Server, Oracle, Sybase, mySQL, etc.

Unfortunately, there are many different versions. But, they must support the same
major keywords in a similar manner such as SELECT, UPDATE, DELETE,
INSERT, WHERE, etc.

Most of the SQL database programs also have their own proprietary extensions!
Here at Taif University...

● I installed a version of MySQL on my office desktop, and it is


this system that we use in this course and during the labs.
Most all of the commands discussed here should work with little (or
no) change to them on other database systems.

● The IP address of my desktop is: 172.24.2.17


● File management: 172.24.2.17/ (password is student ID)
● Database management: 172.24.2.17/phpmyadmin
(username/pass/database: 33/33/33 for student ID 33)
SQL Database Tables
A database most often contains one or more tables. Each table is identified by a name
(e.g. "Customers" or "Orders"). Tables contain records (rows) with data.

For example, a table called "Persons":

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger

The table above contains three records (one for each person) and four columns
(LastName, FirstName, Address, and City).
SQL Queries
With SQL, you can query a database and have a result set returned.

A query like this:

SELECT LastName FROM Persons;

gives a result set like this:

LastName
Hansen
Svendson
Pettersen
The mySQL database system requires a semicolon at the
end of the SQL statement!
SQL Data Languages
The query and update commands together form the Data Manipulation
Language (DML) part of SQL:
• SELECT - extracts data from a database table
• UPDATE - updates data in a database table
• DELETE - deletes data from a database table
• INSERT INTO - inserts new data into a database table

The Data Definition Language (DDL) part of SQL permits database tables to be
created or deleted:
• CREATE TABLE - creates a new database table
• ALTER TABLE - alters (changes) a database table
• DROP TABLE - deletes a database table
• CREATE INDEX - creates an index (search key)
• DROP INDEX - deletes an index

*Here we will use some of them in


mySQL
Logging into mySQL Server
You can log into mySQL server by typing in the prompt

$ mysql -h <servername> –u uername -p

Welcome to the MySQL monitor. Commands end with ; or \g.


Your MySQL connection id is 209201 to server version: 5.0.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
From here you can create, modify, and drop tables, and modify the data in your
tables.
But first, you must specify which database on the server you want to use (you have
only
one,mysql>
however).
use studentID;

Database changed
Technical note

● You probably don’t need to worry about this, but thought I would
mention it here…

Most books and on-line tutorials assume the database server is


running on the same machine as everything else, and that the user is
"root".
Neither of these are true here. Wherever you see "localhost",
replace it by "mysql" Wherever you see "root", replace it with your
username.

(Ignore this if you don’t understand it for now, or are not consulting other
references.)
Creating a Table
You can create a table you might use for the upcoming project. For example,

mysql> CREATE TABLE students(


Hit Enter after each
-> num INT NOT NULL AUTO_INCREMENT, line (if you want).
-> f_name VARCHAR(48), MySQL doesn’t try to
-> l_name VARCHAR(48), interpret the command
-> student_id INT, itself until it sees a
semicolon (;)
-> email VARCHAR(48),
-> PRIMARY KEY(num)); (The “->” characters
you see are not typed
by you.)

Query OK, 0 rows affected (0.02 sec)

*If the server gives you a big ERROR, just try again from the top!
Viewing The Table Structure
Use DESCRIBE to see the structure of a table

mysql> DESCRIBE students;

+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| num | int(11) | NO | PRI | NULL | auto_increment |
| f_name | varchar(48) | YES | | NULL | |
| l_name | varchar(48) | YES | | NULL | |
| student_id | int(11) | YES | | NULL | |
| email | varchar(48) | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
Inserting Data
Using INSERT INTO you can insert a new row into your table. For example,

mysql> INSERT INTO students


-> VALUES(NULL,‘Salah',‘Othman',396640,‘salah@tu.edu.sa');

Query OK, 1 row affected (0.00 sec)

Using SELECT FROM you select some data from a table.

mysql> SELECT * FROM students;

+-----+---------+--------+------------+----------------------+
| num | f_name | l_name | student_id | email |
+-----+---------+--------+------------+----------------------+
| 1 | Salah| Othman| 396640 | salah@tu.edu.sa |
+-----+---------+--------+------------+----------------------+
1 row in set (0.00 sec)
Inserting Some More Data
You can repeat inserting until all data is entered into the table.

mysql> INSERT INTO students


VALUES(NULL,'Muhammad','Abdullah',00878737,'muhammad@tu.edu.sa');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM students;


+-----+---------+--------+------------+----------------------+
| num | f_name | l_name | student_id | email |
+-----+---------+--------+------------+----------------------+
| 1 | Salah| Othman| 396640 | salah@tu.edu.sa |
| 2 | Muhammad| Abdullah| 878737 | muhammad@tu.edu.sa |
+-----+---------+--------+------------+----------------------+
2 rows in set (0.00 sec)
Note: The value “NULL” in the “num” field is automatically
replaced by the SQL interpreter as the “auto_increment” option
was selected when the table was defined.
Getting Data Out of the Table

● The SELECT command is the main way of getting data out of a table, or set of tables.
SELECT * FROM students;
Here the asterisk means to select (i.e. return the information in) all columns.

You can specify one or more columns of data that you want, such as
SELECT f_name,l_name FROM students;

+---------+--------+
| f_name | l_name |
+---------+--------+
| Salah | Othman |
| Muhammad| Abdullah|
+---------+--------+
2 rows in set (0.00 sec)
Getting Data Out of the Table (cont.)

You can specify other information that you want in the query using the WHERE
clause.
SELECT * FROM students WHERE l_name=‘Othman’;

+-----+---------+--------+------------+----------------------+
| num | f_name | l_name | student_id | email |
+-----+---------+--------+------------+----------------------+
| 2 | Salah | Othman | 396640 | salah@tu.edu.sa |
+-----+---------+--------+------------+----------------------+
1 row in set (0.00 sec)

SELECT student_id, email FROM students WHERE l_name=‘Othman’;


+------------+----------------------+
| student_id | email |
+------------+----------------------+
| 396640 | salah@tu.edu.sa |
+------------+----------------------+
1 row in set (0.00 sec)
Altering the Table
The ALTER TABLE statement is used to add or drop columns in an existing table.

mysql> ALTER TABLE students ADD date DATE;

Query OK, 2 rows affected (0.00 sec)


Records: 2 Duplicates: 0 Warnings: 0

mysql> SELECT * FROM students;


+-----+---------+--------+------------+----------------------+------+
| num | f_name | l_name | student_id | email | date |
+-----+---------+--------+------------+----------------------+------+
| 1 | Salah| Othman | 396640 | salah@tu.edu.sa | NULL |
| 2 | Muhammad| Abdullah| 878737 | muhammad@tu.edu.sa | NULL |
+-----+---------+--------+------------+-----------------------------------+------+

2 rows in set (0.00 sec)


Updating the Table
The UPDATE statement is used to modify data in a table.

mysql> UPDATE students SET date='2013-1-15' WHERE num=1;

Query OK, 1 row affected (0.01 sec)


Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT * FROM students;


+-----+---------+--------+------------+----------------------+------------+
| num | f_name | l_name | student_id | email | date |
+-----+---------+--------+------------+----------------------+------------+
| 1 | Salah | Othman| 396640 | salah@tu.edu.sa | 2013-1-15 |
| 2 | Muhammad| Abdullah| 878737 | muhammad@tu.edu.sa | NULL |
+-----+---------+--------+------------+-----------------------------------+------+
2 rows in set (0.00 sec)
Note that the default date format is “YYYY-MM-DD” and I don’t
believe this
default setting can be changed.
Deleting Some Data
The DELETE statement is used to delete rows in a table.

mysql> DELETE FROM students WHERE l_name= 'Abdullah';

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM students;


+-----+---------+--------+------------+----------------------+------------+
| num | f_name | l_name | student_id | email | date |
+-----+---------+--------+------------+----------------------+------------+
| 1 | Salah | Othman| 396640 | salah@tu.edu.sa | 2013-1-15 |
+-----+---------+--------+------------+---------------------------+------------+
1 row in set (0.00 sec)
The Final Table
We’ll first add another column, update the (only) record, then insert more data.

mysql> ALTER TABLE students ADD gr INT;

Query OK, 1 row affected (0.01 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> SELECT * FROM students;


+-----+---------+--------+------------+----------------------+------------+------+
| num | f_name | l_name | student_id | email | date | gr |
+-----+---------+--------+------------+----------------------+------------+------+
| 1 | Salah | Othman| 396640 | salah@tu.edu.sa | 2013-1-15 || NULL |
+-----+---------+--------+------------+----------------------+------------+------+
1 row in set (0.00 sec)

mysql> UPDATE students SET gr=3 WHERE num=1;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT * FROM students;


+-----+---------+--------+------------+----------------------+------------+------+
| num | f_name | l_name | student_id | email | date | gr |
+-----+---------+--------+------------+----------------------+------------+------+
| 1 | Salah | Othman| 396640 | salah@tu.edu.sa | 2013-1-15 || 3 |
+-----+---------+--------+------------+----------------------+------------+------+
1 row in set (0.00 sec)

mysql> INSERT INTO students VALUES(NULL,'Fahad',‘Aziz',007,' fahad@tu.edu.sa','2013-1-15', 1);

...
The Final Table (cont.)
. . .

mysql> INSERT INTO students VALUES(NULL, 'Aicha', 'Taha',75849789, 'aicha@tu.edu.sa',


CURRENT_DATE, 2);

Note: CURRENT_DATE is a built-in SQL command which (as expected)


gives the current (local) date.

mysql> SELECT * FROM students;

+-----+---------+----------+------------+----------------------------+------------+------+

| num | f_name | l_name | student_id | email | date | gr |

+-----+---------+----------+------------+----------------------------+------------+------+

| 1 | Salah | Othman | 396640 | salah@tu.edu.sa | 2013-1-15 | 3 |

| 3 | Fahad | Aziz | 7 | fahad@tu.edu.sa | 2013-1-15 | 1 |

| 4 | Aicha | Taha | 12190 | aicha@tu.edu.sa | 2013-1-15 | 2 |

+-----+---------+----------+------------+----------------------------+------------+------+

3 rows in set (0.00 sec)

mysql> exit

Bye
Other SQL Commands

● SHOW tables; gives a list of tables that have been defined in the database
● ALTER TABLE students DROP email; would drop the “email” column from
all records
● DROP TABLE students; deletes the entire “students” table, and its definition
(use the DROP command with extreme care!!)
● DELETE FROM students; removes all rows from the “students” table (so
once again, use the DELETE command with great caution), the table
definition remains to be used again
● A more useful command is something like
DELETE FROM students WHERE (num > 5) AND (num <= 10);
which selectively deletes students based on their “num” values (for example).

● HELP; gives the SQL help


● HELP DROP; gives help on the DROP command, etc.
Backing up/restoring a mySQL database
You can back up an entire database with a command such as X
mysqldump –h databaseserver –u username databasename> backup.sql

(Run from the Unix command line.)


This gives a script containing SQL commands to reconstruct the table structure (of
all tables) and all of the data in the table(s).
To restore the database (from scratch) you can use this type of Unix command:
mysql –h databaseserver –u username databasename < backup.sql
(Use with caution, as this can overwrite your database.)

Other commands are possible to backup/restore only certain tables or items in


tables, etc. if that is what you desire. For example
mysqldump –h databaseserver –u username databasename books clients> backup.sql

stores information about the “books” and “clients” tables in the “databasename”
database.
Putting Content into Your Database with PHP
We can simply use PHP functions and mySQL queries together:

• Connect to the database server and login (this is the PHP command to do so)
mysqli_connect("host","username","password");

• Choose the database Host: localhost


mysqli_select_db("database"); Database: 111
Username: 111
Password: 111
• Send SQL queries to the server to add, delete, and modify data
mysql_query(“select * from students");
(use the exact same query string as you would normally use in SQL, without the trailing semi-colon)

• Close the connection to the database server (to ensure the information is stored properly)
mysql_close();
Student Database: data_in.php
<html><head><title>Putting Data in the DB</title></head>
<body>
<?php /*insert students into DB*/
if(isset($_POST["submit"])) {
$db = mysql_connect("mysql", “student1");
mysql_select_db(“student1");

$date=date("Y-m-d"); /* Get the current date in the right


SQL format */

$sql="INSERT INTO students VALUES(NULL,'" .


$_POST["f_name"] . "','" . $_POST["l_name"] . "'," .
$_POST["student_id"] . ",'" . $_POST["email"] . "','" .
$date . "'," . $_POST["gr"] . ")"; /* construct the
query */
mysql_query($sql); /* execute the query */
mysql_close();

echo"<h3>Thank you. The data has been entered.</h3> \n";


echo'<p><a href="data_in.php">Back to registration</a></p>'
. "\n";
echo'<p><a href="data_out.php">View the student lists</a>
</p>' ."\n";
Student Database: data_in.php
else {
?>
<h3>Enter your items into the database</h3>
<form action="data_in.php" method="post">
First Name: <input type="text" name="f_name" /> <br/>
Last Name: <input type="text" name="l_name" /> <br/>
ID: <input type="text" name="student_id" /> <br/>
email: <input type="text" name="email" /> <br/>
Group: <select name="gr">
<option value ="1">1</option>
<option value ="2">2</option>
<option value ="3">3</option>
</select><br/><br/>
<input type="submit" name="submit" /> <input type="reset" />
</form>
view the output page
<?php
} /* end of "else" block */
?>
</body></html>
Getting Content out of Your Database with PHP
Similarly, we can get some information from a database:
• Connect to the server and login, choose a database
mysql_connect("host","username","password");
mysql_select_db("database");

Send an SQL query to the server to select data from the database into an array
$result=mysql_query(“select……");
Either, look into a row and a fieldname
$num=mysql_numrows($result);
$variable=mysql_result($result,5,“gr");
Or, fetch rows one by one
$row=mysql_fetch_array($result);

• Close the connection to the database server


mysql_close();
Student Database: data_out.php
<html><head><title>Getting Data out of the DB</title></head><body><h1> Student
Database </h1>
<p> Order the full list of students by
<a href="data_out.php?order=date">date</a>,
<href="data_out.php?order=student_id">id</a>, or
by <a href="data_out.php?order=l_name">surname</a>.
</p><p><form action="data_out.php" method="post">
Or only see the list of students in group
<select name="gr">
<option value ="1">1</option>
<option value ="2">2</option>
<option value ="3">3</option>
</select>
<br/>
<input type="submit" name="submit" />
</form></p>
Student Database: data_out.php
<?php /*get students from the DB */
$db = mysql_connect("mysql",“student1");
mysql_select_db(“student1", $db);
switch($_GET["order"]){
case 'date': $sql = "SELECT * FROM students ORDER BY date"; break;
case 'student_id': $sql = "SELECT * FROM students ORDER BY student_id";
break;
case 'l_name': $sql = "SELECT * FROM students ORDER BY l_name"; break;
default: $sql = "SELECT * FROM students"; break;
}
if(isset($_POST["submit"])){
$sql = "SELECT * FROM students WHERE gr=" . $_POST["gr"];
}
$result=mysql_query($sql); /* execute the query */
while($row=mysql_fetch_array($result)){
echo "<h4> Name: " . $row["l_name"] . ', ' . $row["f_name"] . "</h4> \n";
echo "<h5> ID: " . $row["student_id"] . "<br/> Email: " . $row["email"] . "<br/> Group: " .
$row["gr"] . "<br/> Posted: " . $row["date"] . "</h5> \n";
}
mysql_close(); view the output page
?> </body></html>
Verifying input/output and database security

● On the previous examples, I have done no error


checking to verify that the database operations where
successful (which should normally be performed).

● I have also done nothing in regards to database security


issues and so forth. (I will say more about this later.)
Can Do Even More with PHP

Can create tables in PHP


Can delete rows and columns
Can make updates
Can make queries to several tables
Can get connected to several databases
* Find more information on PHP/mySQL
Learning Outcomes

In these last lectures you have learned


● What is SQL
● How to access mySQL database
● How to create a basic mySQL database
● How to use some basic queries
● How to use PHP and mySQL

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy