+ All Categories
Home > Documents > Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

Date post: 01-Jan-2016
Category:
Upload: gerald-snow
View: 257 times
Download: 3 times
Share this document with a friend
30
Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL
Transcript
Page 1: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

Lec_6

Manipulating MySQLDatabases with PHP

PHP Programming with MySQL

Page 2: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

2PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Opening a MySQL Connection

• Open a connection to a MySQL database with mysqli_connect()– Returns a positive integer if connection is successful

– Returns false if it is not

• Assign the return value to a variable– $connection =

mysqli_connect("host"[, "user ", "password", "database"])

– host specifies where MySQL database server resides

– user and password specify MySQL username and password

– database selects a database with which to work

Page 3: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

3PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Selecting a Database

• Select a database when connecting OR• Use mysqli_select_db() function• Syntax

– mysqli_select_db(connection, database)

– Use connection variable returned by mysqli_connect()

• Return value– True if database is selected successfully– False if it is not

• Also enables you to change current database

Page 4: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

4PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Closing a Database Connection

• Any open database connections are closed automatically when a PHP script ends.

• Should be closed explicitly when you are finished with the connection– Releases memory

• mysqli_close($connection)

Page 5: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

5PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Example

$connect = mysqli_connect(“localhost”, “tostrand”, “tjo123”);

mysqli_select_db($connect, “e-commerce”);

mysqli_close($connect);

Page 6: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

6PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Handling MySQL Errors

• Reasons for failure to connect to a database server include:– The database server is not running

– Insufficient privileges to access the data source

– Invalid username and/or password

Page 7: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

7PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Suppressing Errors with the Error Control Operator

• Writing code that anticipates and handles potential problems is called bulletproofing

• Bulletproofing techniques include:– Validating submitted form data

– Using the error control operator (@) to suppress error messages

– Providing your own custom (user-friendly) error messages

Page 8: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

8PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Terminating Script Execution

• The die() function terminates script execution• Accepts a single string argument• Call the die() as a separate statement OR• Append the function call to an expression with

the Or operator

Page 9: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

9PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Terminating Script Execution

$DBConnect = @mysqli_connect("localhost", "root", "paris");

if (!$DBConnect)die("The db server is not available.<br />");

echo "Successfully connected to the db server.<br />";$DBSelect = @mysqli_select_db($DBConnect, "flightlog");if (!$DBSelect)

die("The database is not available.<br />");echo "Successfully opened the database.<br />";// additional statements that access the databasemysqli_close($DBConnect);

Page 10: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

10PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Terminating Script Execution

$DBConnect = @mysqli_connect("localhost", "dongosselin", "rosebud")

Or die("The db server is not available.<br />");echo "Successfully connected to the db server.<br />";@mysqli_select_db($DBConnect, "flightlog")

Or die("The database is not available.<br />");echo "Successfully opened the database.<br />";// additional statements that access the database

servermysqli_close($DBConnect);

Page 11: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

11PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

MySQL Error Reporting Functions

Page 12: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

12PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Reporting MySQL Errors

$User = $_GET['username'];$Password = $_GET['password'];$DBConnect = @mysqli_connect("localhost", $User, $Password)

Or die("Unable to connect to the database server.<br />"

. "Error code " . mysqli_connect_errno()

. ": " . mysqli_connect_error()) . "<br />"; echo "Successfully connected to the database server.<br />";@mysqli_select_db($DBConnect, "flightlog")

Or die("Unable to select the database.<br />". "Error code " . mysqli_errno($DBConnect). ": " . mysqli_error($DBConnect)) . "<br />"; echo

"Successfully opened the database.<br />";// additional statementsmysqli_close($DBConnect);

Page 13: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

13PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Executing SQL Statements

• mysqli_query() function sends SQL statements to MySQL database

mysqli_query(connection, query)

• Returns one of three values:– For SQL statements that do not return results (e.g. CREATE TABLE, INSERT), returns true if the statement executes successfully

– For SQL statements that return results (e.g. SELECT), returns a result pointer that represents the query results

• Refers to the currently selected row in a resultset

– Returns false for any SQL statements that fail, regardless of whether they return results

Page 14: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

14PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Working with Query Results

• mysqli_fetch_row() – returns fields in the current row into an

indexed array• mysqli_fetch_assoc()

– returns fields in the current row into an associative array

• mysqli_fetch_array() – returns fields in the current row into an

indexed array or associative array

Page 15: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

15PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

mysqli_fetch_row()• Returns the fields in the current row of a

resultset into an indexed array • Moves the result pointer to the next row

echo "<table width='100%‘ border='1'>";echo "<tr><th>Make</th><th>Model</th>

<th>Price</th><th>Quantity</th></tr>";$Row = mysqli_fetch_row($QueryResult);do {

echo "<tr><td>{$Row[0]}</td>";echo “ <td>{$Row[1]}</td>";echo “ <td align='right'>{$Row[2]}</td>";echo “ <td align='right'>{$Row[3]}</td></tr>";$Row = mysqli_fetch_row($QueryResult);

} while ($Row);

Page 16: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

16PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Page 17: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

17PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

mysqli_fetch_assoc()

• The function returns the fields in the current row of a resultset into an associative array

• Moves the result pointer to the next row• Each field name is used as an array keyecho "<table width='100%‘ border='1'>";echo "<tr><th>Make</th><th>Model</th>

<th>Price</th><th>Quantity</th></tr>";do {

$Row = mysqli_fetch_assoc($QueryResult);echo "<tr><td>{$Row[‘make’]}</td>";echo “ <td>{$Row[‘model’]}</td>";echo “ <td align='right'>{$Row[‘price’]}</td>";echo “ <td align='right'>{$Row[‘quantity’]}</td></tr>";$Row = mysqli_fetch_row($QueryResult);

} while ($Row);

Page 18: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

18PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Accessing Query Result Information

• mysqli_num_rows() returns the number of rows in a query result

• mysqli_num_fields() returns the number of fields in a query result

• Both functions accept a database connection variable as an argument

Page 19: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

19PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

$SQLstring = "SELECT * FROM inventory";$QueryResult = @mysqli_query($DBConnect, $SQLstring)

Or die("Unable to execute the query.<br />". "Error code “ . mysqli_errno($DBConnect). ": " . mysqli_error($DBConnect)) . "<br />";

echo "Successfully executed the query.<br />";$NumRows = mysqli_num_rows($QueryResult);$NumFields = mysqli_num_fields($QueryResult);if ($NumRows != 0 && $NumFields != 0)

echo "Your query returned " . mysqli_num_rows($QueryResult) . " rows and "

. mysqli_num_fields($QueryResult)

. " fields.<br />";else

echo "Your query returned no results.<br />";mysqli_close($DBConnect);

Page 20: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

20PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Page 21: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

21PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Closing Query Results

• When you are finished working with query results, use the mysqli_free_result() function to close the resultset.

• Takes query result as a parameter– mysqli_free_result($queryResult);

• Only works when the SQL statement returns results.

Page 22: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

22PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Creating Databases

• Use the CREATE DATABASE statement with the mysqli_query() function to create a new database

• Use mysqli_db_select() to check whether a database exists before you create or delete it

• To use a new database, select it by executing the mysqli_select_db() function

• Use the DROP DATABASE statement with the mysqli_query() function to delete a database

Page 23: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

23PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

$DBName = "real_estate";...if (@mysqli_select_db($DBConnect, $DBName))

echo "The $DBName database already exists!<br />";else {

$SQLstring = “CREATE DATABASE $DBName";$QueryResult = @mysqli_query($DBConnect,

$SQLstring)Or die("Unable to execute the query.<br />". "Error code “ . mysqli_errno($DBConnect). ": “ . mysqli_error($DBConnect)) . "<br

/>";echo "Successfully created the database.<br />";mysqli_select_db($DBConnect, $DBName);

}

Page 24: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

24PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Creating Tables

• To create a table, use the CREATE TABLE statement with the mysqli_query() function

• Execute the mysqli_select_db() function before executing the CREATE TABLE statement – Prevents the new table from being created in the

wrong database

• Use mysqli_query() to ensure that the table doesn’t already exist

Page 25: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

25PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

$DBName = "real_estate";...$SQLstring = "CREATE TABLE commercial (city VARCHAR(25),

state VARCHAR(25), sale_or_lease VARCHAR(25), type_of_use VARCHAR(40), price INT, size INT)";

$QueryResult = @mysqli_query($DBConnect, $SQLstring)Or die("Unable to execute the query.<br />". "Error code " . mysqli_errno($DBConnect). ": " . mysqli_error($DBConnect)) . "<br />";

echo "Successfully created the table.<br />";mysqli_close($DBConnect);

Page 26: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

26PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Adding Records

• To add records to a table, use an INSERT statement with the mysqli_query() function– INSERT INTO tableName VALUES (val1, val2, val3…)

• The values entered in the VALUES list must be in the same order as the table fields

• Specify NULL in any fields for which you do not have a value– Field definition must allow NULL values or an

error will occur

Page 27: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

27PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Updating Records

• To update records in a table, use an UPDATE statement with the mysqli_query() function

• The WHERE keyword determines which records to update in the table

– UPDATE tableName SET field = valueWHERE condition;

– UPDATE books SET title = “PHP Made Simple”WHERE isbn = ‘123-45-6889’;

Page 28: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

28PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

Deleting Records

• To delete records in a table, use a DELETE statement with the mysqli_query() function

• The WHERE keyword determines which records to delete in the table

– DELETE FROM tableName WHERE condition;

– DELETE FROM books WHERE isbn = ‘123-45-6889’;

Page 29: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

29PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

More Functions

• mysqli_num_rows() – Find the number of records returned from a

SELECT query

• mysqli_affected_rows() – Determine the number of rows affected by an INSERT, UPDATE or DELETE query

Page 30: Lec_6 Manipulating MySQL Databases with PHP PHP Programming with MySQL.

30PHP Programming with MySQL www.BZUpages.comwww.BZUpages.com

$SQLstring = "UPDATE inventory SET price=368.20

WHERE make='Fender' AND model='DG7'";

$QueryResult = @mysqli_query($DBConnect, $SQLstring)

Or die("Unable to execute the query.<br />"

. "Error code " . mysqli_errno($DBConnect)

. ": " . mysqli_error($DBConnect)) . "<br />";

echo "Successfully updated "

. mysqli_affected_rows($DBConnect) . " record(s).<br />";


Recommended