۰۵-دى-۱۳۹۲, ۱۴:۳۰:۱۳
مهمترین قسمت طراحی و پیاده سازی وبسایت های داینامیک اتصال برنامه نوشته شده به پایگاه داده و بازخوانی اطلاعات از پایگاه داده است. در زبان PHP امکان برقراری ارتباط با انواع پایگاه داده وجود دارد، اما در این میان پیشنهاد خود PHP و بزرگان PHP استفاده از پایگاه داده MySQL است. در این دسخط، با نحوه ایجاد ارتباط پایگاه داده MySQL با PHP و مهمترین توابع و دستورات آنها آشنا میشویم.
- ایجاد ارتباط با سرور پایگاه داده MySQL
کد بالا حالت کلی (Syntax) تابع را نمایش میدهد که به صورت زیر در کدنویسی استفاده میشود:
برای قطع ارتباط نیز از تابع زیر استفاده میکنیم:
- ایجاد پایگاه داده MySQL
بعد از ایجاد ارتباط با سرور پایگاه داده در صورتی که پایگاه داده وجود ندارد باید آن را بسازیم. دستورات MySQL در PHP معمولا به صورت رشته ای در متغییری ذخیره میشود که این رشته از دستورات را کوئری (Query) مینامیم، برای مثال:
کد زیر نحوه ساخت یک پایگاه داده را توسط کدهای PHP نمایش میدهد.
در کد بالا ابتدا ارتباط PHP با سرور پایگاه داده MySQL برقرار میشود سپس دستورات ساخت یک پایگاه داده با استفاده از تابع ()mysqli_query اجرا شده و درپایان پیام مربوط به نتیجه عملیات نمایش داده میشود.
- ایجاد جدول در پایگاه داده MySQL
بعد از ساختن پایگاه داده، برای ذخیره اطلاعات داخل آن باید از جداول مربوط استفاده کرد. برای ایجاد جدول میتوانید از کد زیر استفاده کنید:
برای تعیین کلید اصلی و خاصیت افزایش خودکار، هنگام ایجاد جدول به صورت زیر عمل میکنیم:
عبارت AUTO_INCREMENT بیانگر خاصیت افزایش خودکار محتوای فیلد در ستون مربوطه است. برای مثال شماره id کاربران عضو در سایت. PRIMARY KEY برای تعیین فیلد اصلی و یکتای داده ذخیره شده است به این معنی که داده ها به صورت سطر به سطر در جدول پایگاه داده ذخیره میشوند و هر سطر دارای فیلد خاصی است که منحصر به فرد بوده و برای شناسایی آن داده به کار میرود.
- ذخیره داده ها در پایگاه داده MySQL
برای ذخیره داده ها در پایگاه داده باید از دستورات مربوط به این کار استفاده کرد که به صورت زیر میباشد:
کد بالا حالت کلی این دستور را نشان میدهد و برای درک بهتر دستور میتوانید مثال زیر را بررسی کنید:
در کد بالا نام و نام خانوادگی و سن کاربر به ترتیب در فیلدهای Age , LastName , FristName ذخیره میشود.
- ذخیره داده ها از فرم در پایگاه داده MySQL
نمونه فرم در صفحه HTML:
اطلاعات کد بالا بعد از کلیک بر روی Submit به فایل insert.php فرستاده میشوند تا در آنجا پردازش شده و در پایگاه داده ذخیره شوند. کدهای مربوط به ذخیره داده ها در پایگاه داده که در فایل insert.php در کنار فایل Html مربوط به فرمها نوشته میشود به صورت زیر است:
انتخاب داده ها از پایگاه داده MySQL و خواندن اطلاعات
بعد از ذخیره سازی اطلاعات در پایگاه داده نیاز به خواندن آنها در هنگام لزوم داریم. که به صورت زیر است:
کد بالا حالت کلی این دستور را نشان میدهد ، کد بالا داده های ستون column_name را از جدول table_name بازخوانی میکند.برای درک بهتر دستور به مثال زیر دقت کنید:
نمایش اطلاعات پایگاه داده MySQL در یک جدول Html
کد زیر برای نمایش اطلاعات ذخیره شده در یک جدول پایگاه داده به کار میرود:
ایجاد شرط در هنگام خواندن اطلاعات از جدول پایگاه داده MySQL
در اکثر مواقع خواندن داده ها از پایگاه داده باید دارای شرایطی نیز باشد. برای مثال انتخاب کاربران بالای ۱۳ سال.
برای درک بهتر کد بالا مثال زیر را بررسی کنید:
مرتب سازی خروجی پایگاه داده MySQL
گاه خروجی که شما از پایگاه داده میگیرید نیاز به مرتب سازی دارد، برای مثال لیستی از نام کاربران بر اساس حروف الفبا.
و برای مثال استفاده به کد زیر نگاه کنید:
مرتب سازی بر اساس دو ستون:
- بروز رسانی پایگاه داده
برای تغییر دادن داده های ذخیره شده در جدول به کار میرود:
مثال:
- حذف داده ها از پایگاه داده MySQL
برای حذف کردن سطر داده ها از جدول به کار میرود:
مثال:
- ایجاد ارتباط با سرور پایگاه داده 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 (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
کد بالا حالت کلی این دستور را نشان میدهد و برای درک بهتر دستور میتوانید مثال زیر را بررسی کنید:
کد 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>
کد 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(s) ASC|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=value, column2=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);
?>