Presentation is loading. Please wait.

Presentation is loading. Please wait.

PHP and SQL Server: Connection IST2101. Typical web application interaction (php, jsp…) database drivers 2IST210.

Similar presentations


Presentation on theme: "PHP and SQL Server: Connection IST2101. Typical web application interaction (php, jsp…) database drivers 2IST210."— Presentation transcript:

1 PHP and SQL Server: Connection IST2101

2 Typical web application interaction (php, jsp…) database drivers 2IST210

3 When you query a database… IST2103 Step2. Select the database Step1. Connect to the MS SQL server Server Name: upsql Authentication: SQL Server Authentication Step3. Input a query and execute it to get result Step4. When you are done, close the application

4 Let PHP do it for you… Basic Steps for PHP Database Access: 1.Connect to the MS SQL server and access the database – connect 2.Perform SQL operations – Query – Get the results and update on the webpage – Most of the work are in this step 3.Disconnect from the server – close 4IST210

5 Example http://my.up.ist.psu.edu/zuz22/query.php IST2105

6 Try it yourself 1.Download query.php from the course website and save it to your IST webspace 2.Open query.php using Notepad++ and modify the database information (important!) 3.Visit the PHP page and query the database: – http://my.up.ist.psu.edu/YourPSUID/query.php http://my.up.ist.psu.edu/YourPSUID/query.php IST2106

7 Modify the Database Information IST2107 Input your own information

8 Connect to the Server IST2108 Attention: you may not have PROJECT table in your database! Check out what tables you have! Go to MS SQL Management Studio  Go to your database (your PSUID)  Go to Tables If you do not have any table in your database, download the scripts “SQL-Create-Tables.sql” and “SQL-Insert-Data.sql” from course website (week4-2) to create tables Visit http://my.up.ist.psu.edu/YourPSUID/query.phphttp://my.up.ist.psu.edu/YourPSUID/query.php

9 HTML Form and PHP IST2109 Get the table name from HTML form In PHP, fetch the table name from $_POST

10 Step 1. Open a DB Connection Open a connection to a database server – MS SQL Server: $connection = sqlsrv_connect( $hostName, $connectionInfo ) More spec: http://php.net/manual/en/function.sqlsrv- connect.php http://php.net/manual/en/function.sqlsrv- connect.php The sqlsrv_connect function returns a resource handle $connection if it connects to the database successfully 10IST210

11 11 $hostname ‘UID’ ‘PWD’ Same parameters when you try to log in SQL server using MS Management Studio: ‘Database’

12 Step 2-1. Use SQL to Query your DB Run a query with PHP – MS SQL Server: $query_result = sqlsrv_query($connection, $query); – It returns a result handle $query_result – We need the result handle ($query_result) to fetch result data 12IST210

13 13 If input table is “project”, the generated query is “SELECT * FROM project” Execute the SQL command “SELECT * FROM project” Same as you execute SQL in Management studio:

14 Step 2-2. Fetch query results Fetch the fields in the results – MS SQL Server: $fieldMetadata = sqlsrv_field_metadata($query_result); $fieldname= $fieldMetadata['Name']; – More spec: http://php.net/manual/en/function.sqlsrv-field-metadata.php Get the data from each row – MS SQL Server: $line = sqlsrv_fetch_array($query_result, SQLSRV_FETCH_ASSOC) The row ($line) is returned as an array. – More spec: http://php.net/manual/en/function.sqlsrv-fetch-array.php 14IST210

15 15 Result in management studio Result shown on webpage (in table) Put the result in the table Fetching all the fields and print the field names The header is the field Fetching each row of the result Fetching each column of that row $line is an array, $cell is an element in the array Refer to previous lectures for array, loop, and table

16 Step 2-other. Other queries for your DB You can also insert/update/delete records – MS SQL Example $query=“INSERT INTO USERS (UserID, UserName) VALUES(1, \ ‘ Leon\ ’ )” $query_result = sqlsrv_query($connection, $query) You can even create/delete/alter db objects – MS SQL Example $query=“DROP TABLE USERS” $query_result = sqlsrv_query($connection, $query) 16IST210

17 Step 3. Close a DB connection You should close a DB connection to release resources – MS SQL Server: sqlsrv_close($connection); 17IST210

18 Error Handling All php DB functions return NULL (or false) if they fail – The database server is not running – Insufficient privileges to access the data source – Invalid username and/or password Several functions are helpful in graceful failure – die(string) - halts and displays the string – sqlsrv_errors() - returns text of error 18IST210

19 Error Handling examples Method One: if (!($connection = sqlsrv_connect( $hostName, $connectionInfo ))) die("ERROR: connecting database server failed "); Method two: $connection = sqlsrv_connect( $hostName, $connectionInfo ) or die("ERROR: connecting database server failed"); 19IST210

20 Other PHP MSSQL Classes http://php.net/manual/en/book.sqlsrv.php – Functions: allowing plugging-in variables 20IST210

21 In-Class Exercise Modify query.php, allowing to specify attributes – If no input for attributes, show the table – If some input for attributes, show the selected columns – Example: http://my.up.ist.psu.edu/zuz22/query-attr.phphttp://my.up.ist.psu.edu/zuz22/query-attr.php

22 Hints IST21022 You need to modify these two parts Now, you need to query given attributes not the whole table. What query you should generate? Also, when there is no input for attributes, you need to show all the results. So think about using if…else… statement You need to have a new input for attribute names


Download ppt "PHP and SQL Server: Connection IST2101. Typical web application interaction (php, jsp…) database drivers 2IST210."

Similar presentations


Ads by Google