MySQL + 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
• PHP 5 and later can work with a MySQL database using:
• MySQLi extension (the "i" stands for improved)
• PDO (PHP Data Objects)
• Three ways of working with PHP and MySQL:
• MySQLi (object-oriented)
• MySQLi (procedural)
• PDO
Basic MySQL Commands
• show databases;
• show tables;
• describe [table name];
• drop database [database name];
• drop table [table name];
Connection…
<?php
$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";
?>
Close the connection…
• mysqli_close($conn);
List Databases
// Usage without mysql_list_dbs()
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$res = mysql_query($conn, "SHOW DATABASES");
while ($row = mysql_fetch_assoc($res)) {
echo $row['Database'] . "n";
}
// Create database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully";
} else {
echo "Error creating database: " . mysqli_error($conn);
}
Create Database
Create Table
// 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
)";
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
Insert data in Table
$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;
}
Insert multiple
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";
if (mysqli_multi_query($conn, $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
Select data from table
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$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";
}
Delete Data from Table
// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
Update Data in Table
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
Some important methods to remember…
Function Description Usage
mysqli_autocommit() Turns on or off auto-committing
database modifications
mysqli_autocommit($con,FALSE)
mysqli_close() Closes a previously opened database
connection
mysqli_close($con)
mysqli_connect() Opens a new connection to the MySQL
server
mysqli_connect("localhost","my_user","my_password",
"my_db");
mysqli_connect_error() Returns the error description from the
last connection error
if (mysqli_connect_errno())
Some important methods to remember…
Function Description Usage
mysqli_query() Performs a query against
the database
mysqli_query($con,"SELECT * FROM Persons");
mysqli_query($con,"INSERT INTO Persons
(FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");
mysqli_select_db() Changes the default
database for the connection
mysqli_select_db($con,"test");
mysqli_rollback() Rolls back the current
transaction for the database
mysqli_query($con,"INSERT INTO Persons
(FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");
mysqli_commit($con);
mysqli_rollback($con);
mysqli_real_escape_string() Escapes special characters in
a string for use in an SQL
statement
$firstname = mysqli_real_escape_string($con,
$_POST['firstname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO Persons (FirstName, Age)
VALUES ('$firstname', '$age')";
Some important methods to remember…
Function Description Usage
mysqli_fetch_array() Fetches a result row as an
associative, a numeric array, or
both
$sql="SELECT Lastname,Age FROM Persons ORDER BY
Lastname";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_array($result,MYSQLI_NUM);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
printf ("%s (%s)n",$row["Lastname"],$row["Age"]);
mysqli_fetch_assoc() Fetches a result row as an
associative array
$sql="SELECT Lastname,Age FROM Persons ORDER BY
Lastname";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_assoc($result);
printf ("%s (%s)n",$row["Lastname"],$row["Age"]);
mysqli_fetch_all() Fetches all result rows as an
associative array, a numeric
array, or both
$sql="SELECT Lastname,Age FROM Persons ORDER BY
Lastname";
$result=mysqli_query($con,$sql);
mysqli_fetch_all($result,MYSQLI_ASSOC);
mysqli_data_seek() Adjusts the result pointer to an
arbitrary row in the result-set
$result=mysqli_query($con,$sql)
mysqli_data_seek($result,14);
$row=mysqli_fetch_row($result);
Some important methods to remember…
Function Description Usage
mysqli_fetch_row() Fetches one row from a result-
set and returns it as an
enumerated array
if ($result=mysqli_query($con,$sql))
{
// Fetch one and one row
while ($row=mysqli_fetch_row($result))
{
printf ("%s (%s)n",$row[0],$row[1]);
}
mysqli_free_result($result);}
mysqli_field_count() Returns the number of columns
for the most recent query
mysqli_query($con,"SELECT * FROM Friends");
mysqli_field_count($con);
mysqli_num_fields() Returns the number of fields in
a result set
if ($result=mysqli_query($con,$sql))
{
$fieldcount=mysqli_num_fields($result);
mysqli_num_rows() Returns the number of rows in a
result set
$rowcount=mysqli_num_rows($result);

4.3 MySQL + PHP

  • 1.
  • 2.
    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
  • 3.
    • PHP 5and later can work with a MySQL database using: • MySQLi extension (the "i" stands for improved) • PDO (PHP Data Objects) • Three ways of working with PHP and MySQL: • MySQLi (object-oriented) • MySQLi (procedural) • PDO
  • 4.
    Basic MySQL Commands •show databases; • show tables; • describe [table name]; • drop database [database name]; • drop table [table name];
  • 5.
    Connection… <?php $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"; ?>
  • 6.
    Close the connection… •mysqli_close($conn);
  • 7.
    List Databases // Usagewithout mysql_list_dbs() $conn = mysql_connect('localhost', 'mysql_user', 'mysql_password'); $res = mysql_query($conn, "SHOW DATABASES"); while ($row = mysql_fetch_assoc($res)) { echo $row['Database'] . "n"; }
  • 8.
    // Create database $sql= "CREATE DATABASE myDB"; if (mysqli_query($conn, $sql)) { echo "Database created successfully"; } else { echo "Error creating database: " . mysqli_error($conn); } Create Database
  • 9.
    Create Table // sqlto 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 )"; if (mysqli_query($conn, $sql)) { echo "Table MyGuests created successfully"; } else { echo "Error creating table: " . mysqli_error($conn); }
  • 10.
    Insert data inTable $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; }
  • 11.
    Insert multiple $sql ="INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Julie', 'Dooley', 'julie@example.com')"; if (mysqli_multi_query($conn, $sql)) { echo "New records created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
  • 12.
    Select data fromtable $sql = "SELECT id, firstname, lastname FROM MyGuests"; $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"; }
  • 13.
    Delete Data fromTable // sql to delete a record $sql = "DELETE FROM MyGuests WHERE id=3"; if (mysqli_query($conn, $sql)) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . mysqli_error($conn); }
  • 14.
    Update Data inTable $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; if (mysqli_query($conn, $sql)) { echo "Record updated successfully"; } else { echo "Error updating record: " . mysqli_error($conn); }
  • 15.
    Some important methodsto remember… Function Description Usage mysqli_autocommit() Turns on or off auto-committing database modifications mysqli_autocommit($con,FALSE) mysqli_close() Closes a previously opened database connection mysqli_close($con) mysqli_connect() Opens a new connection to the MySQL server mysqli_connect("localhost","my_user","my_password", "my_db"); mysqli_connect_error() Returns the error description from the last connection error if (mysqli_connect_errno())
  • 16.
    Some important methodsto remember… Function Description Usage mysqli_query() Performs a query against the database mysqli_query($con,"SELECT * FROM Persons"); mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age) VALUES ('Glenn','Quagmire',33)"); mysqli_select_db() Changes the default database for the connection mysqli_select_db($con,"test"); mysqli_rollback() Rolls back the current transaction for the database mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age) VALUES ('Glenn','Quagmire',33)"); mysqli_commit($con); mysqli_rollback($con); mysqli_real_escape_string() Escapes special characters in a string for use in an SQL statement $firstname = mysqli_real_escape_string($con, $_POST['firstname']); $age = mysqli_real_escape_string($con, $_POST['age']); $sql="INSERT INTO Persons (FirstName, Age) VALUES ('$firstname', '$age')";
  • 17.
    Some important methodsto remember… Function Description Usage mysqli_fetch_array() Fetches a result row as an associative, a numeric array, or both $sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname"; $result=mysqli_query($con,$sql); $row=mysqli_fetch_array($result,MYSQLI_NUM); $row=mysqli_fetch_array($result,MYSQLI_ASSOC); printf ("%s (%s)n",$row["Lastname"],$row["Age"]); mysqli_fetch_assoc() Fetches a result row as an associative array $sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname"; $result=mysqli_query($con,$sql); $row=mysqli_fetch_assoc($result); printf ("%s (%s)n",$row["Lastname"],$row["Age"]); mysqli_fetch_all() Fetches all result rows as an associative array, a numeric array, or both $sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname"; $result=mysqli_query($con,$sql); mysqli_fetch_all($result,MYSQLI_ASSOC); mysqli_data_seek() Adjusts the result pointer to an arbitrary row in the result-set $result=mysqli_query($con,$sql) mysqli_data_seek($result,14); $row=mysqli_fetch_row($result);
  • 18.
    Some important methodsto remember… Function Description Usage mysqli_fetch_row() Fetches one row from a result- set and returns it as an enumerated array if ($result=mysqli_query($con,$sql)) { // Fetch one and one row while ($row=mysqli_fetch_row($result)) { printf ("%s (%s)n",$row[0],$row[1]); } mysqli_free_result($result);} mysqli_field_count() Returns the number of columns for the most recent query mysqli_query($con,"SELECT * FROM Friends"); mysqli_field_count($con); mysqli_num_fields() Returns the number of fields in a result set if ($result=mysqli_query($con,$sql)) { $fieldcount=mysqli_num_fields($result); mysqli_num_rows() Returns the number of rows in a result set $rowcount=mysqli_num_rows($result);