Professional Documents
Culture Documents
PHP
Mohammed 1
ﻣﻘﺪﻣﺔ
ﺗﻤﻜﻨﻨﺎ ﻟﻐﺔ PHPﻣﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ،وﻣﻌﺎﻟﺠﺔ
اﻟﺒﻴﺎﻧﺎت ﺑﻜﻞ ﺳﻬﻮﻟﻪ.
Mysql
أﺷﻬﺮ ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﺑﻬﺎ ﻣﻊ php
2
ﻣﺎﻫﻲ What is MySQL
ﺗﻌﺘﺒﺮ إﺣﺪى ﻧﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ اﻟﻮﻳﺐ
ﻳﻌﻤﻞ ﻧﻈﺎم ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ اﻟﺴﻴﺮﻓﺮ
ﻣﻨﺎﺳﺐ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺘﻄﺒﻴﻘﺎت اﻟﻜﺒﻴﺮة واﻟﺼﻐﻴﺮة
ﻳﻌﺘﺒﺮ ﻧﻈﺎم ﺳﺮﻳﻊ وﻣﺮن وﺳﻬﻞ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ
ﻳﺴﺘﺨﺪم standard sql
ﻳﺸﺘﻐﻞ ﻋﻠﻰ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﻨﺼﺎت
ﻣﺠﺎﻧﻲ اﻻﺳﺘﺨﺪام
3
اﻟﺒﻴﺎﻧﺎت ﺗﺨﺰن اي ﺟﺪاول وﺗﻌﺘﺒﺮ اﻟﺠﺪاول ﻣﺠﻤﻮﻋﺔ ﻣﻦ
اﻟﺒﻴﺎﻧﺎت اﻟﻤﺘﺮاﺑﻄﺔ ﻣﻊ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ.
4
PHP + MySQL Database System
phpو Mysql
ﻳﻤﻜﻨﻬﻢ اﻟﻌﻤﻞ ﻋﻠﻰ اي ﻣﻨﺼﻪ، cross-platformﻣﺜﻞ
windowsأو unix platform
6
?Should I Use MySQLi or PDO
ﻣﺘﻰ اﺳﺘﺨﺪمMySQLi or PDO
PDO
ﻳﻤﻜﻦ ﺑﻬﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ أﻛﺜﺮ ﻣﻦ ١٢ﻧﻈﺎم ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت ،
ﻓﻬﻲ ﺳﻬﻠﻪ اﻟﺘﻨﻘﻞ ﻣﻦ ﻧﻈﺎم ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت اﻟﻲ اﺧﺮ دون
اﻟﺤﺎﺟﻪ ﻹﻋﺎدة ﻛﺘﺎﺑﺔ اﻟﻜﻮد
MySQLi
ﺗﺘﻌﺎﻣﻞ ﻓﻘﻂ ﻣﻊ ﻧﻈﺎم ،Mysqlﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت
7
اﻻﺗﺼﺎل ب Open a Connection to 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 أﺿﺎﻓﺔ
ﺑﻌﺪﻫﺎ
28