Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
92 views

Chap 7 PHP MySQL Database

The document provides instructions on how to connect to a MySQL database from PHP, create a database and table, and insert data. It begins with starting the MySQL command line tool and provides commands to view databases, tables, and data. It then discusses using MySQLi and PDO to connect to MySQL from PHP scripts, create a database, create a table with various column attributes, and insert data into the table. Tips are provided on exception handling with PDO and best practices for SQL queries.

Uploaded by

sohad aldeek
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views

Chap 7 PHP MySQL Database

The document provides instructions on how to connect to a MySQL database from PHP, create a database and table, and insert data. It begins with starting the MySQL command line tool and provides commands to view databases, tables, and data. It then discusses using MySQLi and PDO to connect to MySQL from PHP scripts, create a database, create a table with various column attributes, and insert data into the table. Tips are provided on exception handling with PDO and best practices for SQL queries.

Uploaded by

sohad aldeek
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

Introduction to PHP

Chapter 7
PHP 7 MySQL Database
Starts page84
How to start the MYSQL command line
• Do the following:
1- start  cmd
2- c:…>cd\
3-c:>cd xampp
4-c:\xampp>cd mysql
5-c:\xampp\mysql> cd bin
6-c:\xampp\mysql\bin>mysql –uroot –p
Press enter on the password prompt
The prompt becomes MariaDB[<none>]> type any mysql
command some follows
• MariaDB[<none>]> show databases;
• MariaDB[<none>]>use database name;
• MariaDB[<none>]>show tables;
• MariaDB[<none>]>desc tablename
• MariaDB[<none>]>create table t1(id int not null, name
varchar(25));
• MariaDB[<none>]>insert into t1 values(123, ‘kamal
irshaid’);
• MariaDB[<none>]>drop database dbname;
• MariaDB[<none>]>exit // to leave mysql
PHP 7 MySQL Database
• With PHP, you can connect to and manipulate databases.
• MySQL is the most popular database system used with PHP.
• 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
• The data in a MySQL database are stored in tables. A
table is a collection of related data, and it consists of
columns and rows.
• Databases are useful for storing information
categorically. A company may have a database with the
following tables:
• Employees
• Products
• Customers
• Orders
PHP + MySQL Database System
• PHP combined with MySQL are cross-platform (you can
develop in Windows and serve on a Unix platform)
• Database Queries
• A query is a question or a request.
• We can query a database for specific information and
have a recordset returned.
• Look at the following query (using standard SQL):
• SELECT LastName FROM Employees
• The query above selects all the data in the "LastName"
column from the "Employees" table.
PHP 7 Connect to MySQL
• PHP 5 and later can work with a MySQL
database using:
• MySQLi extension (the "i" stands for
improved)
• PDO (PHP Data Objects)
• Earlier versions of PHP used the MySQL
extension. However, this extension was
deprecated in 2012.
Should I Use MySQLi or PDO?
• If you need a short answer, it would be "Whatever you like".
• Both MySQLi and PDO have their advantages:
• PDO will work on 12 different database systems, whereas
MySQLi will only work with MySQL databases.
• So, if you have to switch your project to use another
database, PDO makes the process easy. You only have to
change the connection string and a few queries. With
MySQLi, you will need to rewrite the entire code - queries
included.
• Both are object-oriented, but MySQLi also offers a
procedural API.
• Both support Prepared Statements. Prepared
Statements protect from SQL injection, and
are very important for web application
security.
Open a Connection to MySQL
• Before we can access data in the MySQL database, we need to be able to connect to the
server:
• Example (MySQLi Object-Oriented)
• <?php
$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 is an amazing and popular language!

• Note on the object-oriented example above:


$connect_error was broken until PHP 5.2.9 and 5.3.0. If
you need to ensure compatibility with PHP versions
prior to 5.2.9 and 5.3.0, use the following code instead:

// Check connection
if (mysqli_connect_error()) {
    die("Database connection failed: " .
mysqli_connect_error());
}
• Note: In the PDO example above we have
also specified a database (myDB). PDO require a
valid database to connect to. If no database is
specified, an exception is thrown.
• Tip: A great benefit of PDO is that it has an
exception class to handle any problems that may
occur in our database queries. If an exception is
thrown within the try{ } block, the script stops
executing and flows directly to the first catch(){ }
block.
Close the Connection
• The connection will be closed automatically
when the script ends. To close the connection
before, use the following:
• Example (MySQLi Object-Oriented)
• $conn->close();
•  
PHP 7 Create a MySQL Database
• A database consists of one or more tables.
• You will need special CREATE privileges to create or to delete a MySQL
database.
• Create a MySQL Database Using MySQLi and PDO
• The CREATE DATABASE statement is used to create a database in MySQL.
• The following examples create a database named "myDB":
• Example (MySQLi Object-oriented)
• <?php
$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);

// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
    echo "Database created successfully";
} else {
    echo "Error creating database: " . $conn->error;
}
$conn->close();
?>
• Note: When you create a new database, you
must only specify the first three arguments to
the mysqli object (servername, username and
password).

Tip: If you have to use a specific port, add an


empty string for the database-name
argument, like this: new mysqli("localhost",
"username", "password", "", port)
• Tip: A great benefit of PDO is that it has
exception class to handle any problems that may
occur in our database queries. If an exception is
thrown within the try{ } block, the script stops
executing and flows directly to the first catch(){ }
block. In the catch block above we echo the SQL
statement and the generated error message.
• wn unique name and consists of columns and
rows.
Create a MySQL Table Using MySQLi and PDO

• The CREATE TABLE statement is used to create a table in MySQL.


• We will create a table named "MyGuests", with five columns:
"id", "firstname", "lastname", "email" and "reg_date":
• CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP
)
Notes on the table above:

• The data type specifies what type of data the column can hold. For a complete
reference of all the available data types, go to our Data Types reference.
• After the data type, you can specify other optional attributes for each column:
• NOT NULL - Each row must contain a value for that column, null values are not
allowed
• DEFAULT value - Set a default value that is added when no other value is
passed
• UNSIGNED - Used for number types, limits the stored data to positive numbers
and zero
• AUTO INCREMENT - MySQL automatically increases the value of the field by 1
each time a new record is added
• PRIMARY KEY - Used to uniquely identify the rows in a table. The column with
PRIMARY KEY setting is often an ID number, and is often used with
AUTO_INCREMENT
• Each table should have a primary key column (in this case: the "id" column). Its value must be
unique for each record in the table.
• The following examples shows how to create the table in PHP:
• Example (MySQLi Object-oriented)
• <?php
$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);

• // sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

if ($conn->query($sql) === TRUE) {


    echo "Table MyGuests created successfully";
} else {
    echo "Error creating table: " . $conn->error;
}

$conn->close();
?>
PHP 7 Insert Data Into MySQL

• Insert Data Into MySQL Using MySQLi and PDO


• After a database and a table have been created, we can start adding
data in them.
• Here are some syntax rules to follow:
• The SQL query must be quoted in PHP
• String values inside the SQL query must be quoted
• Numeric values must not be quoted
• The word NULL must not be quoted
• The INSERT INTO statement is used to add new records to a MySQL
table:
• INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
• Note: If a column is AUTO_INCREMENT (like
the "id" column) or TIMESTAMP with default
update of current_timesamp (like the
"reg_date" column), it is no need to be
specified in the SQL query; MySQL will
automatically add the value.
Example (MySQLi Object-oriented)

• <?php
$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);

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {


    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>
Connect and create db and create table and
insert
• <?php
• $server = "localhost";
• $dbuser = "root";
• $dbpassword = "YOUR_DATABASE_PASSWORD";
• $dbname = "mydb";

• $connection = new mysqli($server, $dbuser, "", $dbname);

• if ($connection->connect_error) {
• die("Connection error: " . $connection->connect_error);

• }
• To create database use the command line:
• Create database mydb;
• else echo "connection successful";
• /*$sqlQuery = "CREATE TABLE contacts (
• id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
• firstName VARCHAR(35) NOT NULL,
• lastName VARCHAR(35) NOT NULL,
• email VARCHAR(55)
• )";
• //Next, run the SQL query using the following code:
• if ($connection->query($sqlQuery) === TRUE) {
• echo "Table created successfully!";
• } else {
• echo "Error creating SQL table: " . $connection->error;
• }
• */
• $sql = "INSERT INTO contacts (id,firstName, lastName, email)
VALUES (12345,'Peter', 'Parker', 'peterparker@mail.com')";
• if(mysqli_query($connection, $sql)){
• echo "Records inserted successfully.";
• } else{
• echo "ERROR: Could not able to execute $sql. " . $connection-
>connect_error;
• }
• $connection->close();
• ?>
Selecting rows from a table:
• Put the following code:
• $sql = "SELECT id, firstname, lastname FROM MyGuests";
$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";
}
Code lines to explain from the example
above:
• First, we set up an SQL query that selects the id, firstname,
lastname and email columns from the contacts table. The
next line of code runs the query and puts the resulting data
into a variable called $result.
• Then, the function num_rows() checks if there are more
than zero rows returned.
• If there are more than zero rows returned, the
function fetch_assoc() puts all the results into an associative
array that we can loop through. The while() loop loops
through the result set and outputs the data from the id,
firstname , lastname and email columns.
To delete record(s) from a table
• $sql = "DELETE FROM contacts WHERE
id=12345";
if (mysqli_query($conn, $sql)) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " .
mysqli_error($conn);
}
A recordTo update
• $sql = "UPDATE contacts SET lastname='Doe'
WHERE id=2";

if (mysqli_query($conn, $sql)) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " .
mysqli_error($conn);
}
Limit Data Selections From a MySQL Database

• MySQL provides a LIMIT clause that is used to


specify the number of records to return.
• The LIMIT clause makes it easy to code multi
page results or pagination with SQL, and is very
useful on large tables. Returning a large number
of records can impact on performance.
• Assume we wish to select all records from 1 - 30
(inclusive) from a table called "Orders". The SQL
query would then look like this:
• $sql = "SELECT * FROM contacts LIMIT 3";
• When the SQL query above is run, it will return the first 30
records.
• What if we want to select records 16 - 25 (inclusive)?
• Mysql also provides a way to handle this: by using OFFSET.
• The SQL query below says "return only 10 records, start on record
16 (OFFSET 15)":
• $sql = "SELECT * FROM contacts LIMIT 10 OFFSET 15";
• You could also use a shorter syntax to achieve the same result:
• $sql = "SELECT * FROM contacts LIMIT 15, 10";
• Notice that the numbers are reversed when you use a comma.

You might also like