Download presentation
Presentation is loading. Please wait.
Published byAlyson Logan Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.