logo
logo
تبلیغ کلیکی تاپ سایت 98

آموزش کار با دیتابیس با PDO

آموزش کار با دیتابیس با PDO
هدایت عباسی آموزش php

در این بخش از آموزش php از تاپ سایت 98 قصد داریم به سراغ آموزش کار با دیتابیس با PDO در php و mysql برویم. در این آموزش اتصال به دیتابیس با pdo ، درج رکورد ، ویرایش اطلاعات و حذف داده ها با مثال و توضیح کامل را یاد می گیرید.

توجه : کدها تست شده می باشد. پیشنهاد می کنم ابتدا یک تست با همین مشخصات ما بزنید و پس از یادگیری روی پروژه php خودتان کار کنید.

پایگاه داده

در ابتدا یک پایگاه داده یا دیتابیس در phpmyadmin بنام testphp1 ساخته و آماده کرده ام.

من یک جدول بنام topsite98 ساختم که شامل 3 فیلد id (از نوع عددی و auto increment  است که خودکار عدد را وارد نمایید)  و فیلد fname  که رشته ای و از نوع varchar  و مقدار 100 است و فیلد numb که از نوع int می باشد.

از منوی phpmyadmin و از طریق insert چند رکورد در آن وارد نمایید.

خطای احتمالی در pdo

کدها تست شده میباشد. پس با دقت عمل نمایید چناچه خطایی رخ داد بدانید اشتباه از چند مورد است :

پایگاه داده یا دیتابیس بنام testphp1 نیست.

جدول topsite98 را در آن نساخته اید.

فیلدها را اشتباه وارد کرده اید.

نرم افزار xampp یا wamp را استارت نکرده اید.

آدرس های php را در مرورگر باید به شکل زیر وارد کنید مثلا من فایل ها را در یک پوشه بنام pdo قرار داده ام پس به این صورت می نویسم.

localhost/pdo/display.php

در غیر این صورت نباید خطایی رخ دهد چون کدها تست شده می باشد.

آموزش کار با دیتابیس با pdo

اتصال به دیتابیس با PDO

ابتدا به سراغ اتصال به دیتابیس با PDO می رویم.

برای ارتباط با دیتابیس با pdo یک فایل بنام connect.php ایجاد کنید.

کد زیر را در آن کپی کنید و ذخیره نمایید.

در صورت اتصال صحیح بایستی پیغام Connected successfully چاپ شود.

new PDO

برای اتصال دیتابیس با pdo بایستی اطلاعاتی گرفته شود مانند نام سرور ، نام یوزر ، رمز عبور ، نام دیتابیس. در new PDO اطلاعات را قرار می دهیم تا کانکشن برقرار شود.

setAttribute

از setAttribute برای بررسی خطاها استفاده می شود اگر خطایی رخ دهد برنامه متوقف می شود.

Try catch

از Try catch وPDOException  برای بررسی خطاها ( ارورها) استفاده می شود اگر خطایی صورت گیرد برنامه متوقف می شود و خطا چاپ می شود.

کد اتصال به دیتابیس با pdo

<?php
$servername = "localhost";
$username = "root";
$password = "";

try {
$conn = new PDO("mysql:host=$servername;dbname=testphp1", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>

دریافت اطلاعات از mysql و نمایش با PDO

برای دریافت اطلاعات از mysql و نمایش اطلاعات با PDO کد زیر را در فایل display.php قرار دهید.

سپس آن را اجرا نمایید. حتما اطلاعات و رکوردهایی در جدول topsite98 داشته باشید.

در مثال زیر ابتدا فایل connect.php را به پروژه اضافه کرده ایم تا اتصال به پایگاه داده برقرار شود.

کد زیر باعث خواندن اطلاعات با pdo می شود و اطلاعات (داده ها)  یک جدول نمایش داده می شود.

برای نمایش رکوردها از دستور select استفاده می کنیم.

کد نمایش اطلاعات جدول با pdo

<?php
include_once 'connect.php';
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>number</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}

try {
$stmt = $conn->prepare("SELECT id, fname, numb FROM topsite98");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>

درج اطلاعات با PDO

برای درج اطلاعات با pdo یک فایل بنام insert.php ایجاد نمایید.

کد زیر را در آن قرار دهید و ذخیره نمایید.

در مثال زیر ابتدا فایل connect.php را به پروژه اضافه کرده ایم. این کار باعث می شود کدنویسی استاندارد شده و باعث کاهش کدنویسی می شود.

سپس با دستور  insert into درج رکورد انجام می شود.

با exec($sql) کوئری اجرا می شود و عمل درج رکورد انجام می شود.

چنانچه اشتباهی داشته باشید با خطا  مواجه می شوید. مثلا mohsen چون رشته است باید در تک کویشن یا دابل کوتیشن قرار گیرید.

من نام جدول را عمدا تغییر دادم و خطای زیر بوجود امد. در خطا آمده است که جدول topsite98b وجود ندارد. پس به خطاهای احتمالی توجه کنید در خطاها دقیقا گفته می شود که مشکل از چیست با صبر و حوصله آن را بررسی کنید.

INSERT INTO topsite98b (fname, numb) VALUES ('mohsen', 18)
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'testphp1.topsite98b' doesn't exist

کد درج اطلاعات با pdo

<?php
include_once 'connect.php';
try {
$sql = "INSERT INTO topsite98b (fname, numb) VALUES ('mohsen', 18)";
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>

حذف اطلاعات با PDO

حال به حذف اطلاعات با PDO می رسیم.

کد زیر را در یک فایل del.php ذخیره نمایید.

هنگام حذف و ویرایش آدرس باید به این شکل باشد:

localhost/pdo/del.php?id=1
localhost/pdo/edit.php?id=1

معمولا حذف اطلاعات بر اساس یک فیلد منحصربفرد انجام می شود که در اینجا id است چون از نوع auto increment قرار دادیم و تکراری نیست.

در مثال زیر ابتدا فایل connect.php را به پروژه php و mysql خود اضافه کرده ایم.

سپس id را از $_GET گرفته ایم و آن را در یک متغیر $id قرار داده ایم.

سپس با دستور delete عمل حذف رکورد را انجام داده ایم و با دستور exec کوئری را اجرا کرده ایم.

اگر حذف بدرستی انجام شود پیغام Record deleted successfully چاپ می شود.

$conn = null

از $conn = null برای پاک کردن و از بین بردن کانکشن دیتابیس استفاده می کنیم.

کد حذف اطلاعات با pdo

<?php
include_once 'connect.php';
try {
$id=$_GET['id'];
$sql = "DELETE FROM topsite98 WHERE id=$id";
$conn->exec($sql);
echo "Record deleted successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>

ویرایش اطلاعات با PDO

حال به ویرایش اطلاعات با pdo می رسیم.

یک فایل بنام edit.php ایجاد کنید و کد زیر را در آن کپی نمایید.

ابتدا فایل connect.php را به پروژه php و mysql خود اضافه کرده ایم.

برای ویرایش داده ها از دستور update و یک id استفاده می کنیم در بخش set فیدهایی که قصد تغییر آنها را دارید قرار دهید.

در صورت اجرای صحیح ویرایش رکورد پیغام records UPDATED successfully نمایش داده می شود.

کد ویرایش اطلاعات با pdo

<?php
include_once 'connect.php';
try {
$id=$_GET['id'];
$sql = "UPDATE topsite98 SET fname='hedayat' WHERE id=$id";
$stmt = $conn->prepare($sql);
$stmt->execute();
echo $stmt->rowCount() . " records UPDATED successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>

مرتب سازی داده ها با PDO

مرتب سازی داده ها با PDO کافی است در کد نمایش اطلاعات بالا دستور select را به این شکل عوض کنید و در انتهای آن دسور order by و فید مورد نظر را وارد نمایید.

من فیلد numb یا نمره و بصورت نزولی را قرار دادم تا رکوردها بر اساس نمره ها مرتب شوند.

کد مرتب سازی داده ها با PDO

$stmt = $conn->prepare("SELECT id, fname, numb FROM topsite98 ORDER BY numb DESC");

سعی کردیم همه دستورات pdo را در یک جا قرار دهیم تا شما کاربران عزیز تاپ سایت 98 بهتر یاد بگیرید.

امیدواریم این پروژه php برای شما مفید باشد.

موفق باشید.

اگر به دنبال کار پاره وقت هستید با ما تماس بگیرید.

اگر سوال یا نظری دارید در بخش کامنت ها بنویسید.اگر موضوع خاصی مد نظر شماست که در سایت موجود نیست در بخش کامنت ها بنویسید

کسب و کار
دوره های آموزشی دوره های آموزشی

نظرات کاربران

از دیدگاه مرتبط با موضوع استفاده نمایید.

از تبلیغ سایت یا شبکه اجتماعی خودداری فرمایید.

برای پاسخ گویی بهتر در سایت ثبت نام نمایید و سپس سوال خود را مطرح فرمایید.