You are on page 1of 28

Database

PHP

Web Application Development

Mohammed 1
‫ﻣﻘﺪﻣﺔ‬
‫ﺗﻤﻜﻨﻨﺎ ﻟﻐﺔ ‪ PHP‬ﻣﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‪ ،‬وﻣﻌﺎﻟﺠﺔ‬
‫اﻟﺒﻴﺎﻧﺎت ﺑﻜﻞ ﺳﻬﻮﻟﻪ‪.‬‬

‫‪Mysql‬‬
‫أﺷﻬﺮ ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﺑﻬﺎ ﻣﻊ ‪php‬‬

‫‪2‬‬
‫ﻣﺎﻫﻲ ‪What is MySQL‬‬
‫ﺗﻌﺘﺒﺮ إﺣﺪى ﻧﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ اﻟﻮﻳﺐ‬
‫ﻳﻌﻤﻞ ﻧﻈﺎم ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ اﻟﺴﻴﺮﻓﺮ‬
‫ﻣﻨﺎﺳﺐ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺘﻄﺒﻴﻘﺎت اﻟﻜﺒﻴﺮة واﻟﺼﻐﻴﺮة‬
‫ﻳﻌﺘﺒﺮ ﻧﻈﺎم ﺳﺮﻳﻊ وﻣﺮن وﺳﻬﻞ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ‬
‫ﻳﺴﺘﺨﺪم ‪standard sql‬‬
‫ﻳﺸﺘﻐﻞ ﻋﻠﻰ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﻨﺼﺎت‬
‫ﻣﺠﺎﻧﻲ اﻻﺳﺘﺨﺪام‬

‫‪3‬‬
‫اﻟﺒﻴﺎﻧﺎت ﺗﺨﺰن اي ﺟﺪاول وﺗﻌﺘﺒﺮ اﻟﺠﺪاول ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬
‫اﻟﺒﻴﺎﻧﺎت اﻟﻤﺘﺮاﺑﻄﺔ ﻣﻊ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ‪.‬‬

‫ﻛﻞ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت رﺑﻤﺎ ﺗﺘﻜﻮن ﻣﻦ ﺟﺪول )‪ (Table‬واﺣﺪ‬


‫أو ﻋﺪة ﺟﺪاول ﻫﺬه اﻟﺠﺪاول ﺗﺤﺘﻮي ﻋﻠﻲ أﻋﻤﺪة وﺻﻔﻮف‬
‫ﺗﻬﻴﻜﻞ اﻟﺒﻴﺎﻧﺎت وﺗﺮﺗﺒﻬﺎ‬

‫‪4‬‬
‫‪PHP + MySQL Database System‬‬
‫‪ php‬و ‪Mysql‬‬
‫ﻳﻤﻜﻨﻬﻢ اﻟﻌﻤﻞ ﻋﻠﻰ اي ﻣﻨﺼﻪ‪، cross-platform‬ﻣﺜﻞ‬
‫‪ windows‬أو ‪unix platform‬‬

‫اﻻﺳﺘﻌﻼﻣﺎت ‪Database Queries‬‬


‫ﻫﻲ ﻋﺒﺎرة ﻋﻦ ﻃﻠﺒﺎت أو ﺗﺴﺎؤﻻت ﻳﺘﻢ ارﺳﺎﻟﻬﺎ إﻟﻰ‬
‫اﻟﺴﻴﺮﻓﺮ‪ ،‬وﺑﻌﺪ ﺗﻨﻔﻴﺬﻫﺎ ﻳﺘﻢ إرﺟﺎع اﻟﺒﻴﺎﻧﺎت او إﻇﻬﺎر رﺳﺎﻟﻪ‬
‫ان اﻟﺒﻴﺎﻧﺎت ﻏﻴﺮ ﻣﻮﺟﻮدة‪.‬‬
‫‪5‬‬
PHP Connect to MySQL ‫اﻻﺗﺼﺎل ب‬
‫ ﻳﻤﻜﻦ اﻟﻌﻤﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬،PHP 5 ‫ﺑﻌﺪ اﻟﻨﺴﺨﺔ‬
: ‫ﺑﺎﺳﺘﺨﺪام‬
MySQLi extension (the "i" stands for
improved)
PDO (PHP Data Objects)

6
‫?‪Should I Use MySQLi or PDO‬‬
‫ﻣﺘﻰ اﺳﺘﺨﺪم‪MySQLi or PDO‬‬
‫‪PDO‬‬
‫ﻳﻤﻜﻦ ﺑﻬﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ أﻛﺜﺮ ﻣﻦ ‪ ١٢‬ﻧﻈﺎم ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت ‪،‬‬
‫ﻓﻬﻲ ﺳﻬﻠﻪ اﻟﺘﻨﻘﻞ ﻣﻦ ﻧﻈﺎم ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت اﻟﻲ اﺧﺮ دون‬
‫اﻟﺤﺎﺟﻪ ﻹﻋﺎدة ﻛﺘﺎﺑﺔ اﻟﻜﻮد‬

‫‪MySQLi‬‬
‫ﺗﺘﻌﺎﻣﻞ ﻓﻘﻂ ﻣﻊ ﻧﻈﺎم ‪ ،Mysql‬ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪7‬‬
‫اﻻﺗﺼﺎل ب ‪Open a Connection to MySQL‬‬

‫ﻗﺒﻞ اﻻﺗﺼﺎل ﻓﻲ ‪ ،Mysql‬ﻻﺑﺪ ﻣﻦ اﻟﺘﺄﻛﺪ ﻣﻦ اﻻﺗﺼﺎل ب‬


‫اﻟﺴﻴﺮﻓﺮ‬

‫‪8‬‬
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username,
$password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?> 9
‫‪Close the Connection‬‬
‫ﻳﺘﻢ اﻧﻬﺎ اﻻﺗﺼﺎل ﺗﻠﻘﺎﺋﻴﺎ ﻋﻨﺪ اﻧﺘﻬﺎء اﻟﺴﻜﺮﺑﺖ ‪script‬‬
‫وﻟﻜﻦ ﻻﻏﻼق اﻻﺗﺼﺎل ﻧﺴﺘﺨﺪم اﻻﺗﻲ‬
‫)(‪$conn->close‬‬

‫‪10‬‬
‫‪PHP Create a MySQL Database‬‬
‫ﻻﺑﺪ ﻣﻦ وﺟﻮد ﺻﻼﺣﻴﺎت اﻟﻤﻨﺢ ﻟﻌﻤﻞ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫ﻟﻠﻤﺴﺘﺨﺪم‬
‫‪CREATE DATABASE‬‬
‫ﻳﻌﺘﺒﺮ اﻣﺮ اﻧﺸﺎء ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت‬
‫ﻋﻨﺪﻣﺎ ﻧﻌﻤﻞ اﻧﺸﺎء ﻟﻘﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻋﻠﻴﻨﺎ أن ﻧﺤﺪد ﻓﻘﺬ‬
‫اﻟﺜﻼﺛﺔ اﻟﻤﺘﻐﻴﺮات)‪servername, username and‬‬
‫‪.(password‬‬

‫‪11‬‬
<?php
// Create connection
$conn = new mysqli($servername, $username,
$password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);}
// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
echo "Database created successfully";
} else {
echo "Error creating database: " . $conn->error;
}
$conn->close();
?> 12
‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪mysql‬‬
‫ﻛﺬﻟﻚ ﻳﻮﺟﺪ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺪوال ﻟﻼﺗﺼﺎل واﻟﺘﻌﺎﻣﻞ ﻣﻊ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻨﻬﺎ ‪:‬‬
‫‪mysql_connect‬‬
‫‪integer mysql_connect(string host, string username,‬‬
‫;)‪string password‬‬
‫ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﺎﻻﺗﺼﺎل ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت وﺗﻌﻴﺪ ﻟﻚ رﻗﻢ‬
‫ﻳﻔﻴﺪك اذا ﻛﺎن ﻟﺪﻳﻚ أﻛﺜﺮ ﻣﻦ اﺗﺼﺎل ﺑﻘﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ‪،‬‬
‫اﺣﺘﻔﻆ ﺑﻪ ﻻﺳﺘﺨﺪاﻣﻪ ﻓﻲ دوال أﺧﺮى ﺗﺎﻟﻴﺔ اذا ﻛﺎن ﻫﻨﺎك‬
‫ﺣﺎﺟﺔ ﻟﺬﻟﻚ ﻛﻤﺎ ﻗﻠﻨﺎ ‪ ،‬اﻣﺎ اﻟﻮﺿﻊ اﻟﻄﺒﻴﻌﻲ ﻓﻼ ﻳﺤﺘﺎج اﻻ اﻟﻰ‬
‫اﻻﺗﺼﺎل ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺴﺎﺑﻘﺔ ﻓﻘﻂ وﺑﺪون اﻻﺣﺘﻔﺎظ ﺑﺄي رﻗﻢ‬
‫;)"‪$link = mysql_connect("mdb","moh","Pass‬‬ ‫‪13‬‬
mysql ‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬
mysql_pconnect
integer mysql_pconnect(string host, string
username, string password);
‫ﻫﺬه اﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﻤﺎ ﺗﻘﻮم ﺑﻪ اﻟﺪﻟﺔ اﻟﺴﺎﺑﻘﺔ إﻻ أﻧﻪ ﻻ‬
:‫ ﻣﺜﺎل‬، ‫ﻳﺘﻮﺟﺐ ﻋﻠﻴﻚ إﻏﻼق اﻻﺗﺼﺎل‬
<?
$link = mysql_pconnect("mdb","moh","Pass");
?>
14
mysql ‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬
mysql_db_query
boolean mysql_db_query(string database,
string query, integer link);
‫ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬SQL ‫ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﺘﻨﻔﻴﺬ ﺳﻄﺮ‬
:‫ ﻣﺜﺎل‬database ‫اﻟﻤﻔﺘﻮﺣﺔ ﺑﺎﻟﻤﻌﻄﻰ‬
<?
$link = mysql_connect("mdb","moh","Pass");
$Query = "DELETE FROM std";
$result = mysql_db_query("mdb", $Query, $link);
?>

15
‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪mysql‬‬
‫‪mysql_close‬‬
‫;)‪boolean mysql_close(integer link‬‬
‫ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﻘﻄﻊ ) إﻏﻼق( ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﻣﺮر ﻟﻬﺎ رﻗﻢ اﻻﺗﺼﺎل‬
‫اﻟﻤﻌﺎد ﻣﻦ اﻟﺪاﻟﺔ ‪mysql_connect‬‬
‫ﻣﺜﺎل‪:‬‬
‫?<‬
‫‪ //‬اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪..‬‬
‫;)"‪$link = mysql_connect("localhost","moh","Pass‬‬
‫‪ //‬اﻏﻼق اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪..‬‬
‫;)‪mysql_close($link‬‬
‫>?‬
‫‪16‬‬
mysql ‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬
mysql_query:
integer = mysql_query(string query, integer link);

ً
‫ﺗﻘﺮﻳﺒﺎ إﻻ أن اﻟﺪاﻟﺔ‬ mysql_db_query ‫ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﻤﺎ ﺗﻘﻮم ﺑﻪ اﻟﺪاﻟﺔ‬
‫ ﻳﻘﺘﺼﺮ ﻋﻤﻠﻬﺎ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻤﺤﺪدة ﺑﺎﻟﺪاﻟﺔ‬mysql_query
. mysql_select_db

.‫ﻓﻲ ﺣﺎﻟﺔ ﻋﺪم ﺗﻤﺮﻳﺮ رﻗﻢ اﻻﺗﺼﺎل ﻓﺴﺘﻌﻤﻞ اﻟﺪاﻟﺔ ﻋﻠﻰ اﻻﺗﺼﺎل اﻷﺧﻴﺮ‬
:‫ﻣﺜﺎل‬
<?
$link = mysql_connect("localhost","moh","Pass");
$query = "DELETE FROM mdb";
$result = mysql_query($query, $link);
?>

17
‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪mysql‬‬
‫‪mysql_errno‬‬
‫;)‪integer mysql_errno(integer link‬‬
‫ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﺈﻋﺎدة رﻗﻢ آﺧﺮ ﺧﻄﺄ ﺣﺪث ﻓﻲ اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫‪mysql_error‬‬
‫;)‪string mysql_error(integer link‬‬
‫ﺗﻌﻴﺪ ﻫﺬه اﻟﺪاﻟﺔ رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺤﺎﺻﻞ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬

‫‪18‬‬
mysql ‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬
mysql_drop_db :
boolean mysql_drop_db(string
databasename, integer link);
‫ﺗﻘﻮم ﻫﺬه اﻟﺪاﻟﺔ ﺑﺤﺬف ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻤﺤﺪدة ﺑﺎﻟﻤﻌﻄﻰ‬
.. databasename

19
‫دوال اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪mysql‬‬
‫‪mysql_fetch_row‬‬
‫ﻫﺬه اﻟﺪاﻟﺔ ﺗﻌﻴﺪ ﻣﺼﻔﻮﻓﺔ ﺗﺤﺘﻮي ﻋﻠﻰ ﻗﻴﻢ ﺣﻘﻮل ﺳﺠﻞ ﻣﻦ‬
‫اﻟﺠﺪول وﻛﻞ اﺳﺘﺪﻋﺎء ﻳﻌﻴﺪ ﻗﻴﻤﺔ اﻟﺤﻘﻮل ﻓﻲ اﻟﺴﺠﻞ اﻟﺘﺎﻟﻲ‬
‫ﻓﻲ اﻟﻮاﻗﻊ ﻫﺬه اﻟﺪاﻟﺔ ﺗﺸﺒﻪ اﻟﺪاﻟﺘﻴﻦ اﻟﺴﺎﺑﻘﺘﻴﻦ‪ .‬ﻣﺜﺎل‪:‬‬
‫?<‬
‫{))‪while($row=mysql_fetch_row(result‬‬
‫‪//print id and name‬‬
‫)"]‪print ("$row[0], $row[1‬‬
‫}‬
‫>?‬

‫‪20‬‬
Create a MySQL Table
CREATE TABLE
‫ﻫﻮ اﻣﺮ اﻧﺸﺎء اﻟﺠﺪول ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
: ‫ﻟﻌﻤﻠﻴﺔ اﻧﺸﺎء ﺟﺪول ﻣﻊ ﺧﻤﺴﺔ ﺣﻘﻮل ف ﻧﺴﺘﺨﺪم اﻻﺗﻲ‬
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
) 21
‫‪Create a MySQL Table‬‬
‫ﻓﻲ اﻟﺠﺪول اﻟﺴﺎﺑﻖ ﺗﻢ ﺗﺤﺪﻳﺪ ﺣﻘﻮل اﻟﺒﻴﺎﻧﺎت وأﻧﻮاع‬
‫اﻟﺒﻴﺎﻧﺎت‬

‫‪22‬‬
23
‫‪Insert Data Into MySQL‬‬
‫ﺑﻌﺪ ﻋﻤﻠﻴﺔ اﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت واﻧﺸﺎء اﻟﺠﺪاول ﻧﻌﻤﻞ‬
‫ﻋﻤﻠﻴﺔ اﻻدﺧﺎل اﻟﻲ اﻟﺠﺪاول‬
‫ﻫﻨﺎك ﻣﻼﺣﻈﺎت ﻓﻲ ﻋﻤﻠﻴﻪ اﻻدﺧﺎل ‪:‬‬
‫ﻋﻤﻠﻴﻪ اﻻﺳﺘﻌﻼم ﻻﺑﺪ أن ﺗﻜﻮن ﺑﻴﻦ ﻋﻼﻣﺎت اﻟﺘﻨﺼﻴﺺ‬
‫اﻟﻘﻴﻢ اﻟﻨﺼﻴﺔ ‪ string‬داﺧﻞ اﻻﺳﺘﻌﻼﻣﺎت ﻻﺑﺪ أن ﺗﻜﻮن‬
‫ﺑﻴﻦ ﻋﻼﻣﺎت اﻟﺘﻨﺼﻴﺺ‬
‫اﻟﻘﻴﻢ اﻟﺮﻗﻤﻴﻪ ﻻ ﺗﻜﻮن ﺑﻴﻦ ﻋﻼﻣﺎت اﻟﺘﻨﺼﻴﺺ‬
‫اﻟﻘﻴﻤﻪ اﻟﻔﺎرﻏﺔ ‪ NULL‬ﻻ ﺗﻜﻮن ﺑﻴﻦ ﻋﻼﻣﺎت اﻟﺘﻨﺼﻴﺺ‬
‫‪24‬‬
Insert Data Into MySQL
‫اﻟﺼﻴﻐﺔ اﻟﻌﺎﻣﺔ‬
INSERT INTO table_name (column1,
column2, column3,...)
VALUES (value1, value2, value3,...)

25
26
MySQLi Installation
‫ وﻣﺎ‬php 5 ‫ ﺗﻨﺰل ﺗﻠﻘﺎﺋﻴﺎ ﻓﻲ اﻟﻨﺴﺦ ﻣﻦ‬Mysql ‫أﺿﺎﻓﺔ‬
‫ﺑﻌﺪﻫﺎ‬

For installation details, go to: http://php.net/


manual/en/mysqli.installation.php
PDO Installation
For installation details, go to: http://php.net/
manual/en/pdo.installation.php
27
Download MySQL Database
If you don't have a PHP server with a MySQL
Database, you can download it for free here:
http://www.mysql.com

28

You might also like