Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Science Department

Similar presentations


Presentation on theme: "Computer Science Department"— Presentation transcript:

1 Computer Science Department
PHP & MySQL Database Database Systems CSCI-3343 Dr. Tom Hicks Computer Science Department

2 WWW Organization It Is A Good Idea To Create A Folder For Each Web Page Place Most Items, On Page, In That Folder!

3 WWW SetUp

4 Create Folders  Quadratic, FirstPrime, & RandomNo

5 Drag .php Pages Into Their Proper Folders If You Do So Inside Expression Web, The Links Will Adjust Within Site! (You Will Not Have To Change Main-Menu.php)

6 Add The Link Below To The Bottom Of Quadratic. php RandomNo
Add The Link Below To The Bottom Of Quadratic.php RandomNo.php FirstPrime.php <p><A href="../Main-Menu.php"> Return To Main Menu </A> Add The Link Below To The Bottom Of Each Of Your Other Pages As Well!

7 Database Export With A Script!

8 MySQL Native Import - Export

9 Command Line  Export Database
Use mysqldump! cd C:\Program Files\MySQL\MySQL Server 8.0\bin mysqldump -ptrinity -uroot stanford > c:\temp\stanford2.sql

10 Database Export With MySQL Workbench - Done

11 Database Import With A Script!

12 Command Line  Import Database
Use mysql! Create database Stanford2  must be created before the import!  cd C:\Program Files\MySQL\MySQL Server 8.0\bin  mysql -ptrinity -uroot stanford2 < c:\temp\stanford2.sql

13 Database Import With MySQL Workbench - Done

14 phpinfo()

15 Create Page Student-Display.php
Student-Display.php  Confirm that the PHP is working! <?php phpinfo(); ?>

16 Connect To MySQL Database

17 Create Folder Student-Display

18 Create Page Use Expression Web To Create Page Student-Display.php

19 Modify Menu Page Link Student-Display.php

20 Modify Page Student-Display.php
Add The Code: <?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="root"; $password="trinity"; $database="libraryth1"; $con=mysqli_connect($server, $username, $password, $database); ?> We Changed The Original PHP.ini To Make This Work!

21 Create Page Student-Display.php
This is the same as the previous page! <?php /*============================================================= === Connect To MySQL Database === =============================================================*/ $conn = new mysqli(); $conn->connect("localhost","root","trinity","libraryth"); ?> We Changed The Original PHP.ini To Make This Work!

22 Modify php.ini -3- Edit C:\Program Files\PHP\php.ini
In order to keep PHP lean and mean, many of the optional extensions are turned off. We must turn on the MySQL extensions. We Changed The Original PHP.ini To Make This Work!

23 Modify php.ini -4A- We must often tell the system where we are storing these optional (MySQL) extensions. We Changed The Original PHP.ini To Make This Work!

24 Modify php.ini -4B- Edit C:\Program Files\PHP\php.ini
We must often tell the system where we are storing these optional (MySQL) extensions. We Changed The Original PHP.ini To Make This Work!

25 Database Query

26 Modify Page Student-Display.php -1-
Change the connection portion to the following: <?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="StanfordUser"; $password="trinity"; //Use Your Password $database="stanford"; $con=mysqli_connect($server, $username, $password, $database); ?>

27 Stanford User Privileges On Stanford DB
Stanford Cannot Change DB. <?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="StanfordUser"; $password="trinity"; //Use Your Password $database="stanford"; $con=mysqli_connect($server, $username, $password, $database); ?>

28 Try  Bad Server  localhost1
<?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost1"; $username="StanfordUser"; $password="trinity"; //Use Your Password $database="stanford"; $con=mysqli_connect($server, $username, $password, $database); ?>

29 Try  Bad UserName  StanfordUser1
<?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="StanfordUser1"; $password="trinity"; //Use Your Password $database="stanford"; $con=mysqli_connect($server, $username, $password, $database); ?>

30 Try  Bad Password  trinity1
<?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="StanfordUser1"; $password="trinity1"; //Use Your Password $database="stanford"; $con=mysqli_connect($server, $username, $password, $database); ?>

31 Try  Bad Database  stanford1
<?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="StanfordUser1"; $password="trinity"; //Use Your Password $database="stanford1"; $con=mysqli_connect($server, $username, $password, $database); ?>

32 Blank Is Good!-1- Connection Established! <?PHP
/*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="StanfordUser"; $password="trinity"; //Use Your Password $database="stanford"; $con=mysqli_connect($server, $username, $password, $database); ?>

33 Modify Page Student-Display.php -2-
Add the Query :  Use Your Name! . . . /*============================================================= === Query === =============================================================*/ $query = "SELECT * FROM Users"; $recSet = $conn->query($query); echo "<CENTER><H1> Display Students </H1></CENTER>"; echo "<CENTER><H2> Written By Dr. Tom Hicks </H2></CENTER><HR>"; ?>

34 Modify Page Student-Display.php -3-
Cycle Through The Record Set Loop:  print the data . . . echo "<CENTER><H1> Display Students</H1></CENTER>"; echo "<CENTER><H2> Written By Dr. Tom Hicks </H2></CENTER><HR>"; echo "<pre><P>"; /*============================================================= === Loop Through Records In Record Set === =============================================================*/ while(list($sID, $sName, $GPA) = $recSet->fetch_row()) printf("<strong>%3d %-15s %4.2f </strong> <BR>", $sID, $sName, $GPA); echo "</h2></pre>"; ?> <p><A href="../Main-Menu.php"> Return To Main Menu </A>

35 Modify Page Student-Display.php -3-
There are several ways to connect. There are a number of ways to walk through the records. You can write PHP With well design OOP Functions or Scripting

36 Inefficient! Why Read All Of Data If Only Going To Display Part?

37 More Efficient! Reduce The Transfer Of Data

38 Modify Page Student-Display.php -4-
There are other ways to Generate the same output. /*============================================================= === Loop Through Records In Record Set === =============================================================*/ while($Rec = $recSet->fetch_row()) printf("<B>%3d %-15s %4.2f </B> <BR>", $Rec[0], $Rec[1], $Rec[2]); echo "</h2></pre>";

39 About PHP & MySQL Special Thanks To PHP
About PHP & MySQL Special Thanks To PHP.net For Some Of The Following Documentation

40 API – Application Programming Interface
An Application Programming Interface, or API, defines the classes, methods, functions and variables that your application will need to call in order to carry out its desired task. In the case of PHP applications that need to communicate with databases the necessary APIs are usually exposed via PHP extensions. APIs can be Procedural or Object-Oriented. With a procedural API you call functions to carry out tasks With the object-oriented API you instantiate classes and then call methods on the resulting objects. The Object-Priented API is usually the Preferred Interface, as it is more modern and leads to better organized code. When writing PHP applications that need to connect to the MySQL server there are several API options available.

41 MySQL Connector In the MySQL documentation, the term Connector refers to a piece of software that allows your application to connect to the MySQL database server. MySQL provides connectors for a variety of languages, including PHP.

42 PHP Extension In the PHP documentation you will come across another term - Extension. The PHP code consists of a core, with optional extensions to the core functionality. PHP's MySQL-related extensions, such as the mysqli extension, and the mysql extension, are implemented using the PHP extension framework. An extension typically exposes an API to the PHP programmer, to allow its facilities to be used programmatically. However, some extensions which use the PHP extension framework do not expose an API to the PHP programmer. The PDO MySQL driver extension, for example, does not expose an API to the PHP programmer, but provides an interface to the PDO layer above it. The terms API and extension should not be taken to mean the same thing, as an extension may not necessarily expose an API to the programmer.

43 Main PHP API Offerings For MySQL
There are three main API options when considering connecting to a MySQL database server: PHP's MySQL Extension PHP's mysqli Extension PHP Data Objects (PDO)

44 PHP's MySQL Extension This is the Original Extension designed to allow you to develop PHP applications that interact with a MySQL database. The mysql extension provides a procedural interface and is intended for use only with MySQL versions older than This extension can be used with versions of MySQL or newer, but not all of the latest MySQL server features will be available. This Is Old Technology!: The majority of references on the Internet demonstrate how to use the MySQL Extension. If you are using MySQL versions or later it is strongly recommended that you use the mysqli extension instead.  YES The MySQL Extension is being phased out! The mysql extension source code is located in the PHP extension directory ext/mysql.

45 PHP's mysqli Extension – 1
The mysqli extension, or as it is sometimes known, the MySQL improved extension, was developed to take advantage of new features found in MySQL systems versions and newer. The mysqli extension is included with PHP versions 5 and later. The mysqli extension has a number of benefits, the key enhancements over the mysql extension being: Object-oriented interface Support for Prepared Statements Support for Multiple Statements Support for Transactions Enhanced debugging capabilities Embedded server support

46 PHP's mysqli Extension – 2
If you are using MySQL versions or later it is strongly recommended that you use this extension. As well as the Object-Oriented Interface the extension also provides a Procedural Interface. The mysqli extension is built using the PHP extension framework, its source code is located in the directory ext/mysqli.

47 PHP Data Objects (PDO) PHP Data Objects, or PDO, is a database abstraction layer specifically for PHP applications. PDO provides a consistent API for your PHP application regardless of the type of database server your application will connect to. In theory, if you are using the PDO API, you could switch the database server you used, from say Firebird to MySQL, and only need to make minor changes to your PHP code. While PDO has its advantages, such as a clean, simple, portable API, its main disadvantage is that it doesn't allow you to use all of the advanced features that are available in the latest versions of MySQL server. For example, PDO does not allow you to use MySQL's support for Multiple Statements. PDO is implemented using the PHP extension framework, its source code is located in the directory ext/pdo.

48 http://www.php.net/manual/en/class.mysqli.php - 1

49 http://www.php.net/manual/en/class.mysqli.php - 2

50 http://www.php.net/manual/en/class.mysqli.php - 1

51 Database Applications Have Many Connections

52 Create Folder C:\InetPub\wwwroot\Secure-Connect

53 Create Page Connection.php -1-
It is often the case that there might be hundreds of web pages that access a single database. Passwords change. The database host can change. We would like an easy way to be able to change the password only one time. Create page Connection.asp – include it hundreds of times! When the time comes to make a change, do it once. Save In Folder Secure-Connect! <?PHP /*============================================================= === Connect To MySQL Database === =============================================================*/ $server ="localhost"; $username="StanfordUser"; $password="trinity"; //Use Your Password $database="stanford"; $con=mysqli_connect($server, $username, $password, $database); ?>

54 Save a Copy of Student-Display
Save a Copy of Student-Display.php in Folder  C:\InetPub\wwwroot\StudentoDisplay Call It TestSecureConnection.php

55 Modify Page TestSecureConnection.php
/*============================================================= === Connect To MySQL Database === =============================================================*/ include_once "../../Secure-Connect/Connection.php"; === Query === $query2 = "SELECT sID, sName, GPA FROM Student"; $recSet2 = $con->query($query); echo "<CENTER><H1> Display Students</H1></CENTER>"; echo "<CENTER><H2> Written By Dr. Tom Hicks </H2></CENTER><HR>"; echo "<pre><P>"; === Loop Through Records In Record Set === while($Rec2 = $recSet->fetch_row()) printf("<B>%3d %-15s %4.2f </B> <BR>", $Rec2[0], $Rec2[1], $Rec2[2]); echo "</h2></pre>"; ?>

56 Link TestSecureConnection.php

57 Connection Page Works!

58 Some PHP Pages Have Many Queries

59 Save a Copy of TestSecureConnection
Save a Copy of TestSecureConnection.php in Folder  C:\InetPub\wwwroot\StudentoDisplay Call It TestMultipleQueries.php

60 Make The Link To Main-Menu.php
Goal

61 Change To $query2 = "SELECT sID, sName, GPA FROM Student";
/*============================================================= === Query === =============================================================*/ $query = "SELECT sID, sName, GPA FROM Student"; $recSet = $con->query($query); To /*============================================================= === Query === =============================================================*/ $query2 = "SELECT sID, sName, GPA FROM Student"; $recSet2 = $con->query($query2);

62 Change To while($Rec1 = $recSet2-> fetch_row())
/*============================================================= === Loop Through Records In Record Set === =============================================================*/ while($Rec = $recSet-> fetch_row()) printf("<B>%3d %-15s %4.2f </B> <BR>", $Rec[0], $Rec[1], $Rec[2]); To /*============================================================= === Loop Through Records In Record Set === =============================================================*/ while($Rec1 = $recSet2-> fetch_row()) printf("<B>%3d %-15s %4.2f </B> <BR>", $Rec1[0], $Rec1[1], $Rec1[2]);

63 Add A Print Statement echo "<pre><p>"; /*============================================================ === Loop Through Records In Record Set === =============================================================*/ $query1 = "SELECT COUNT(*) AS NoStudents FROM Student"; $recSet1 = $con->query($query1); $Rec = $recSet1->fetch_row(); echo "<pre><p>"; print "No Students = " . $Rec[0] . "<p><hr>"; /*============================================================ === Loop Through Records In Record Set === =============================================================*/ $query1 = "SELECT COUNT(*) AS NoStudents FROM Student"; $recSet1 = $con->query($query1); $Rec = $recSet1->fetch_row();

64 One Connection - Multiple Queries!

65 WWW GUI Can Help You Provide Nicely Formatted Output

66 Flyspeed Query

67 We Would Like To Do On A Nicely Formatted Web Page!
Results Of Query We Would Like To Do On A Nicely Formatted Web Page!

68 Goal!

69 Inside Folder C:\inetpub\wwwroot\PHP Create Folder Stanford-Student-Apply

70 Inside Folder Stanford-Student-Apply Use Expression Web To Create Stanford-Student-Apply.php

71 Link The New Page

72 Configure Your Page Properties

73 Configure Your Page Properties

74 Configure Your Page Properties

75 Create The Following With Arial Font Use Your Name

76 Move Your Cursor Below The Horizontal Rule: Insert A New Table On Your Page

77 Configure Your Table As Shown Below

78 You Should Now Have The Start Of Your Table

79 Add The The Following Titles To The First Row  Use Arial Font

80 Select All Of The Cells In Row 1 Right-Mouse Click On One  Select Cell Properties

81 Configure The Cells: Dark Blue

82 Change The Font Color In The First Row To White

83 Insert XX Into Each Cell In Row 2

84 Select All The Cells In Row 2 & Configure As Shown Below
Dark Blue

85 Add The Connection Before The Table

86 Add Your Query

87 Add The Connection Before The Table

88 We Need To Cycle Through Our Records Each Cycke Will Create One Of These Rows

89 Add Your Loop

90 Making Progress

91 Finish It Up!

92 Numerical Values Should Be Right Justified
Making Progress Numerical Values Should Be Right Justified

93 Right-Justify All Three Numeric Fields
Numerical Values Should Be Right Justified

94 Center 1 Character Fields

95 Nice Format Easier With GUI

96 Don't Forget To Include A Return On All Pages

97 Computer Science Department
Database Systems CSCI 3343 Dr. Thomas E. Hicks Computer Science Department Trinity University


Download ppt "Computer Science Department"

Similar presentations


Ads by Google