Introduction to MySQL & PHP

advertisement
Introduction to
MySQL & PHP
Presented by David Sands
CS 157B, SJSU Spring 09'
History of SQL
1974 - First version of SQL developed by Donald Chamberlin and Raymond
Boyce at IBM (SEQUEL). Used to manipulate and retrieve data in their
database.
1986 - American National Standards Institute (ANSI) standardizes SQL-86.
1999 – SQL3 supports new features like procedural & control-of-flow
statements, triggers, and regular expressions.
…..
2008 – SQL2008 - still modifying the language to date.
Popular SQL suppliers today
MySQL, Microsoft SQL Server, IBM DB2, Oracle 11g, PostgreSQLSQL
MySQL & PHP, presented by David Sands
2
Basic SQL Syntax
➔ Data Definition Language (DDL)
• CREATE TABLE / DATABASE / VIEW / etc.....
• ALTER ...
• DROP ...
➔ Data Manipulation Language (DML)
•
•
•
•
SELECT ... FROM / INTO … WHERE ...
INSERT INTO ... VALUES ...
UPDATE … SET … WHERE ...
DELETE FROM … WHERE ...
MySQL & PHP, presented by David Sands
3
Intro to MySQL
➔ Released 23 May 1995.
➔ 11+ Million web servers using MySQL
➔ Similar, but not exactly same syntax as IBM DB2, Oracle 11g, etc...
➔ Open-source & free to download, under the GNU General Public
License.
➔ Coded in C / C++, Yacc parser, and custom lexical analyzer.
MySQL & PHP, presented by David Sands
4
MySQL Tutorial (1 of 2)
➔ Following from MySQL 5.1 Manual (3.3 Creating and using a database)
➔ For Command Prompt usage, follow these steps to use a database.
Enter password: XXXXX
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.31-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW DATABASES;
+--------------------+
| Database
|
+--------------------+
| information_schema |
| mysql
|
| test
|
+--------------------+
3 rows in set (0.00 sec)
mysql> USE TEST;
Database changed
➔ You can now perform DML & DDL operations!
MySQL & PHP, presented by David Sands
5
MySQL Tutorial (2 of 2)
mysql> CREATE TABLE myTest (time DATE, note VARCHAR(10), id INT);
Query OK, 0 rows affected (0.11 sec)
mysql> DESCRIBE myTest;
+-------+-------------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| time | date
| YES |
| NULL
|
|
| note | varchar(10) | YES |
| NULL
|
|
| id
| int(11)
| YES |
| NULL
|
|
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)
mysql> INSERT INTO myTest VALUES (NULL, "hello", 3);
Query OK, 1 row affected (0.05 sec)
mysql> SELECT * FROM myTest;
+------+-------+------+
| time | note | id
|
+------+-------+------+
| NULL | hello |
3 |
+------+-------+------+
1 row in set (0.01 sec)
mysql>
MySQL & PHP, presented by David Sands
6
History of PHP
1994 - Rasmus Lerdorf wrote Common Gateway Interface (CGI) Binaries.
1995 - Personal Home Page Tools (PHP Tools) formed.
1997-8 - Zeev Suraski & Andi Gutmans wrote PHP parser. Their PHP3
became the PHP: Hypertext Preprocessor.
To 2008 - Various improvements & bug fixes.
➔ Old versions of PHP – Code not compiled. Only interpreted and run.
➔ After PHP4, Parser compiles input to produce bytecode for Zend Engine
processing.
MySQL & PHP, presented by David Sands
7
Intro to PHP
➔ PHP file runs on web server, inputs PHP code, compiles to bytecode,
outputs Web Pages.
➔ Creates Dynamic Web Pages, using Server Side Scripting. (like .asp, .jsp,
perl). Clients “Run” these web pages when visited.
➔ Similar programming structure / syntax as C or Javascript. Other “Tools”
included in PHP releases like ImageJPEG($im,$destpic,
$jpeg_thumb_quality);
➔ HTML (markup language) usually used along with PHP.
MySQL & PHP, presented by David Sands
8
PHP Syntax
➔ <?php PHP code here ?>
➔ $variable
//automatic type detection on assignment.
➔ $ is escape character for variables within double quotes
➔ $newVar = “$string1 hihi!” //replaces $string1 with its value.
➔ “Double quotes” = variable replacement
➔ 'Single quotes' = literal string
➔ That 3rd set of quotes (`???`) = some other use
➔ function generateThumbnail($sourceImg, $destImg){ }
MySQL & PHP, presented by David Sands
9
PHP Examples
MySQL & PHP, presented by David Sands
10
Some MySQL + PHP Uses
➔ Managing database from the web. Phymyadmin is a commonly used
remote database management system via a PHP interface.
➔ User places buy order on your website, and info is stored in DB.
➔ Progressively build a SQL Query string.
➔ PHP can blend with anything else on an HTML webpage, and even
dynamically generate more web code.
➔ Make and test your own website / program.
MySQL & PHP, presented by David Sands
11
PhpBB
MySQL & PHP, presented by David Sands
12
PhpMyAdmin
MySQL & PHP, presented by David Sands
13
MySQL + PHP
Need a web server that connects to a local or remote Database?
No problem!
Host most likely “localhost”.
To perform SQL commands, try this php function...
$sql = mysql_query(“SELECT * FROM myTable);
Just like with Java and its JDBC.
There is a way to iterate through the resulting bag.
MySQL & PHP, presented by David Sands
14
List all query results Ex.
MySQL & PHP, presented by David Sands
15
PHP Control Structure Ex.
PHP is much like C, Java, or Javascript in some ways.
This will print 0123456789
MySQL & PHP, presented by David Sands
16
Form Post Ex. (1 of 2)
•
•
•
MySQL & PHP, presented by David Sands
Test.php is purely HTML.
Form's POST action sends the object names to PHP file.
PHP file extracts them with array $_POST[].
17
Form Post Ex. (2 of 2)
MySQL & PHP, presented by David Sands
18
How do I get PHP or MySQL?
Mysql.com (100 MB)
php.net (for reference)
Some web server, like Apache or Wampserver will work.
For the examples, I used Wampserver (wampserver.com) (16 MB)
1. Installed MySQL
2. created some new tables with mysql
3. installed Wampserver
4. make .PHP files and put them in the www folder
5. Go to http://localhost/my.php
6. test your code.
MySQL & PHP, presented by David Sands
19
MySQL-PHP Conclusion
➔ MySQL is open-source and PHP is open-library.
➔ MySQL and PHP work well together.
➔ Free. Fairly simple and familiar to program with.
➔ MySQL is fast enough, but PHP is fairly slow.
➔ Many real-world applications on-line or even in a local network.
➔ If you are sick of MySQL command line, go get a web server with
PhpMyAdmin.
MySQL & PHP, presented by David Sands
20
References
1.
2.
3.
4.
5.
6.
http://www.mysql.com
http://www.php.net/mysql
http://www.wampserver.com
http://en.wikipedia.org/wiki/SQL
http://en.wikipedia.org/wiki/Mysql
http://en.wikipedia.org/wiki/Php
MySQL & PHP, presented by David Sands
21
Download