امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش برقراری ارتباط PHP و MySQL
نویسنده پیام
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #1
آموزش برقراری ارتباط PHP و MySQL
مهمترین قسمت طراحی و پیاده سازی وبسایت های داینامیک اتصال برنامه نوشته شده به پایگاه داده و بازخوانی اطلاعات از پایگاه داده است. در زبان PHP امکان برقراری ارتباط با انواع پایگاه داده وجود دارد، اما در این میان پیشنهاد خود PHP و بزرگان PHP استفاده از پایگاه داده MySQL است. در این دسخط، با نحوه ایجاد ارتباط پایگاه داده MySQL با PHP و مهمترین توابع و دستورات آنها آشنا میشویم.

- ایجاد ارتباط با سرور پایگاه داده MySQL
کد php:
mysqli_connect(host,username,password,dbname); 

کد بالا حالت کلی (Syntax) تابع را نمایش میدهد که به صورت زیر در کدنویسی استفاده میشود:


کد php:
<?php
// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");
 
// Check connection
if (mysqli_connect_errno($con))
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }
?>

برای قطع ارتباط نیز از تابع زیر استفاده میکنیم:
کد php:
mysqli_close($con); 

- ایجاد پایگاه داده MySQL

بعد از ایجاد ارتباط با سرور پایگاه داده در صورتی که پایگاه داده وجود ندارد باید آن را بسازیم. دستورات MySQL در PHP معمولا به صورت رشته ای در متغییری ذخیره میشود که این رشته از دستورات را کوئری (Query) مینامیم، برای مثال:

کد php:
SELECT LastName FROM Employees 

کد زیر نحوه ساخت یک پایگاه داده را توسط کدهای PHP نمایش میدهد.

کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

// Create database
$sql="CREATE DATABASE my_db";
if (
mysqli_query($con,$sql))
  {
  echo 
"Database my_db created successfully";
  }
else
  {
  echo 
"Error creating database: " mysqli_error($con);
  }
?>

در کد بالا ابتدا ارتباط PHP با سرور پایگاه داده MySQL برقرار میشود سپس دستورات ساخت یک پایگاه داده با استفاده از تابع ()mysqli_query اجرا شده و درپایان پیام مربوط به نتیجه عملیات نمایش داده میشود.

- ایجاد جدول در پایگاه داده MySQL

بعد از ساختن پایگاه داده، برای ذخیره اطلاعات داخل آن باید از جداول مربوط استفاده کرد. برای ایجاد جدول میتوانید از کد زیر استفاده کنید:


کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

// Create table
$sql="CREATE TABLE persons(FirstName CHAR(30),LastName CHAR(30),Age INT)";

// Execute query
if (mysqli_query($con,$sql))
  {
  echo 
"Table persons created successfully";
  }
else
  {
  echo 
"Error creating table: " mysqli_error($con);
  }
?>

برای تعیین کلید اصلی و خاصیت افزایش خودکار، هنگام ایجاد جدول به صورت زیر عمل میکنیم:

کد php:
$sql "CREATE TABLE Persons 
(
PID INT NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(PID),
FirstName CHAR(15),
LastName CHAR(15),
Age INT
)"


عبارت AUTO_INCREMENT بیانگر خاصیت افزایش خودکار محتوای فیلد در ستون مربوطه است. برای مثال شماره id کاربران عضو در سایت. PRIMARY KEY برای تعیین فیلد اصلی و یکتای داده ذخیره شده است به این معنی که داده ها به صورت سطر به سطر در جدول پایگاه داده ذخیره میشوند و هر سطر دارای فیلد خاصی است که منحصر به فرد بوده و برای شناسایی آن داده به کار میرود.

- ذخیره داده ها در پایگاه داده MySQL

برای ذخیره داده ها در پایگاه داده باید از دستورات مربوط به این کار استفاده کرد که به صورت زیر میباشد:

کد php:
INSERT INTO table_name (column1column2column3,...)
VALUES (value1value2value3,...) 

کد بالا حالت کلی این دستور را نشان میدهد و برای درک بهتر دستور میتوانید مثال زیر را بررسی کنید:

کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin',35)"
);

mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) 
VALUES ('Glenn', 'Quagmire',33)"
);

mysqli_close($con); 

در کد بالا نام و نام خانوادگی و سن کاربر به ترتیب در فیلدهای Age , LastName , FristName ذخیره میشود.

- ذخیره داده ها از فرم در پایگاه داده MySQL

نمونه فرم در صفحه HTML:
کد:
PHP

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<body>

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

</body>
</html>
اطلاعات کد بالا بعد از کلیک بر روی Submit به فایل insert.php فرستاده میشوند تا در آنجا پردازش شده و در پایگاه داده ذخیره شوند. کدهای مربوط به ذخیره داده ها در پایگاه داده که در فایل insert.php در کنار فایل Html مربوط به فرمها نوشته میشود به صورت زیر است:



کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('
$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!
mysqli_query($con,$sql))
  {
  die(
'Error: ' mysqli_error($con));
  }
echo 
"1 record added";

mysqli_close($con); 

انتخاب داده ها از پایگاه داده MySQL و خواندن اطلاعات

بعد از ذخیره سازی اطلاعات در پایگاه داده نیاز به خواندن آنها در هنگام لزوم داریم. که به صورت زیر است:
کد php:
SELECT column_name(s)
FROM table_name 

کد بالا حالت کلی این دستور را نشان میدهد ، کد بالا داده های ستون column_name را از جدول table_name بازخوانی میکند.برای درک بهتر دستور به مثال زیر دقت کنید:

کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

$result mysqli_query($con,"SELECT * FROM Persons");

while(
$row mysqli_fetch_array($result))
  {
  echo 
$row['FirstName'] . " " $row['LastName'];
  echo 
"<br>";
  }

mysqli_close($con);
?>


نمایش اطلاعات پایگاه داده MySQL در یک جدول Html

کد زیر برای نمایش اطلاعات ذخیره شده در یک جدول پایگاه داده به کار میرود:
کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

$result mysqli_query($con,"SELECT * FROM Persons");

echo 
"<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>"
;

while(
$row mysqli_fetch_array($result))
  {
  echo 
"<tr>";
  echo 
"<td>" $row['FirstName'] . "</td>";
  echo 
"<td>" $row['LastName'] . "</td>";
  echo 
"</tr>";
  }
echo 
"</table>";

mysqli_close($con);
?>

ایجاد شرط در هنگام خواندن اطلاعات از جدول پایگاه داده MySQL

در اکثر مواقع خواندن داده ها از پایگاه داده باید دارای شرایطی نیز باشد. برای مثال انتخاب کاربران بالای ۱۳ سال.

کد php:
SELECT column_name(s)
FROM table_name
WHERE column_name operator value 
برای درک بهتر کد بالا مثال زیر را بررسی کنید:


کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }

$result mysqli_query($con,"SELECT * FROM Persons
WHERE FirstName='Peter'"
);

while(
$row mysqli_fetch_array($result))
  {
  echo 
$row['FirstName'] . " " $row['LastName'];
  echo 
"<br>";
  }
?>



مرتب سازی خروجی پایگاه داده MySQL

گاه خروجی که شما از پایگاه داده میگیرید نیاز به مرتب سازی دارد، برای مثال لیستی از نام کاربران بر اساس حروف الفبا.

کد php:
SELECT column_name(s)
FROM table_name
ORDER BY column_name
(sASC|DESC 
و برای مثال استفاده به کد زیر نگاه کنید:



کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }
 
$result mysqli_query($con,"SELECT * FROM Persons ORDER BY age");
 
while(
$row mysqli_fetch_array($result))
  {
  echo 
$row['FirstName'];
  echo 
" " $row['LastName'];
  echo 
" " $row['Age'];
  echo 
"<br>";
  }
 
mysqli_close($con);
?>

مرتب سازی بر اساس دو ستون:

کد php:
SELECT column_name(s)
FROM table_name
ORDER BY column1
column2 

- بروز رسانی پایگاه داده

برای تغییر دادن داده های ذخیره شده در جدول به کار میرود:

کد php:
UPDATE table_name
SET column1
=valuecolumn2=value2,...
WHERE some_column=some_value 
مثال:


کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }
 
mysqli_query($con,"UPDATE Persons SET Age=36
WHERE FirstName='Peter' AND LastName='Griffin'"
);
 
mysqli_close($con);
?>

- حذف داده ها از پایگاه داده MySQL

برای حذف کردن سطر داده ها از جدول به کار میرود:


کد php:
DELETE FROM table_name
WHERE some_column 
some_value 
مثال:

کد php:
<?php
$con
=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  }
 
mysqli_query($con,"DELETE FROM Persons WHERE LastName='Griffin'");
 
mysqli_close($con);
?>

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۰۵-دى-۱۳۹۲, ۱۴:۳۰:۱۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador, lord_viper, babyy
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: آموزش برقراری ارتباط PHP و MySQL
برای ارتباط با بانک اطلاعاتی در php
mysqli خوبه ولی PDO هم oop هست هم خیلی کاملتره
بهتره به جای mysql و mysqli از PDO استفاده بشه

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۰۵-دى-۱۳۹۲, ۱۸:۱۹:۱۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ghoghnus


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش ساخت نقشه سایت برای موتورهای جستجو با PHP و MySQL Ghoghnus 0 2,622 ۰۱-دى-۱۳۹۲, ۱۸:۴۷:۱۳
آخرین ارسال: Ghoghnus
  [آموزشی] ذخیره و بازیابی صحیح در mysql lord_viper 0 1,553 ۲۹-خرداد-۱۳۹۲, ۲۰:۲۶:۳۱
آخرین ارسال: lord_viper
  پرامپت mysql مرد یخی 1 2,238 ۰۶-اسفند-۱۳۹۱, ۱۴:۲۴:۳۵
آخرین ارسال: NabiKAZ
  یه سوال مهم از ارتباط با دیتا بیس و لینک ها naser13 6 4,913 ۰۸-مهر-۱۳۹۰, ۲۰:۱۶:۱۳
آخرین ارسال: naser13
Smile ذخیره تصاویر در MySQL و نمایش آنها با PHP قسمت اول P.H.P 2 14,890 ۱۰-شهریور-۱۳۹۰, ۱۸:۳۶:۳۱
آخرین ارسال: Y.P.Y
  اكسپورت mysql در اكسل am3410 5 4,416 ۳۱-فروردین-۱۳۹۰, ۱۲:۰۳:۳۹
آخرین ارسال: am3410
  تفاوت بین CHAR و NCHAR در MySQL P.H.P 0 2,671 ۲۱-دى-۱۳۸۹, ۱۶:۴۵:۲۷
آخرین ارسال: P.H.P
Toungue ذخیره تصاویر در MySQL و نمایش آنها با PHP قسمت دوم P.H.P 0 4,498 ۱۶-شهریور-۱۳۸۹, ۱۶:۱۵:۴۹
آخرین ارسال: P.H.P
  ایجاد جدول mysql در php king.james 1 3,645 ۲۳-بهمن-۱۳۸۸, ۰۲:۵۵:۵۷
آخرین ارسال: babyy
  معرفی گزینه های ساخت جدول در MySQL. Y.P.Y 0 2,316 ۰۱-شهریور-۱۳۸۸, ۲۰:۵۴:۴۸
آخرین ارسال: Y.P.Y

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS