MYSQL
Prepared By Fadi Sharif
MYSQL
Very popular SQL-database
Was developed by Swedish company MySQL AB
In 2008 Sun Microsystems bought MySQL AB
Both GNU GPL and Commercial Licence
Now it’s owned by Oracle
Has different UIs: CLI, WEB and GUI
MySQL is used by Google, Wikipedia and Yahoo.
MYSQL TUTORIAL
MySQL Tutorial can be found:
http://dev.mysql.com/doc/refman/5.0/en/tutorial.html
PHP AND MYSQL
PHP AND MYSQL
PHP has functions that allow access to MySQL
Databases
Access is very easy
1. Connect
2. Select Database
3. Query
4. Close connection
1. CONNECT
$link = mysql_connect('mysql_server',
'mysql_user','mysql_password');
2. SELECT DATABASE
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo',
$link);
3. QUERY
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo',
$link);
$result = mysql_query("DELETE FROM table;", $link);
4. CLOSE
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo',
$link);
$result = mysql_query("DELETE FROM table;", $link);
mysql_close($link);
MYSQL_QUERY
INSERT, UPDATE, DELETE, DROP
Returns true or false
SELECT, SHOW, DESCRIBE, EXPLAIN
Returns resource on success, false on error
The returned resource should be passed to
mysql_fetch_array()
RETRIEVING TABLE
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo',
$link);
$result = mysql_query("SELECT * FROM table;", $link);
while ($row = mysql_fetch_array($result))
{
echo($row[0]);
echo($row[1]);
}
mysql_close($link);
RETRIEVING TABLE
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo',
$link);
$result = mysql_query("SELECT * FROM table;", $link);
while ($row = mysql_fetch_array($result))
{
echo($row["id"]);
echo($row["name"]);
}
mysql_close($link);
RETRIEVING TABLE
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo', Default Value
$link);
$result = mysql_query("SELECT * FROM table;", $link);
while ($row = mysql_fetch_array($result, MYSQL_BOTH))
{
echo($row[0]);
echo($row["name"]);
}
mysql_close($link);
RETRIEVING TABLE
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo',
$link);
$result = mysql_query("SELECT * FROM table;", $link);
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
echo($row[0]); // Only number indices
echo($row[1]);
}
mysql_close($link);
RETRIEVING TABLE
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
$db_selected = mysql_select_db('foo',
$link);
$result = mysql_query("SELECT * FROM table;", $link);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo($row["id"]); // Only associative indices
echo($row["name"]);
}
mysql_close($link);
ERROR HANDLING
Every function in the previous code examples could fail
Connection can fail, sql query can fail etc.
Usually you exit the script when DB fails.
With exit($status) – function, you can stop the execution
of the script.
EXAMPLE OF ERROR HANDLING 1
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password');
if( ! $link )
{
exit("Error connecting to database");
}
EXAMPLE OF ERROR HANDLING 2
$link = mysql_connect('mysql_server',
'mysql_user',
'mysql_password')
or exit("Error connecting to database");
DESIGNING WEB APPLICATION
WITH DB CONNECTION
CONFIGURATION FILES FOR DB
Create special configuration file for Database
configuration.
This file should have constants just for the database
connection
You could name it conf/database.php
EXAMPLE OF CONF/DATABASE.PHP
<?php
/**
* database.php - holds necessary constants for database connection
*
* Copyright information
*
*
*
* License
*
* Here should be the license...
*
*/
define("MYSQL_HOST", ”localhost");
define("MYSQL_USER", ”root");
define("MYSQL_PASSWD", ”root");
define("MYSQL_DB", ”test");
// End of file
?>