D1-kifpool

آموزش PHP - جلسه یازدهم: اتصال به بانک اطلاعاتی MySQL

سه‌شنبه 11 خرداد 1395 - 11:30
مطالعه 8 دقیقه
در سری آموزش‌های پی‌اچ‌پی تا‌کنون با مباحث زیادی آشنا شده‌اید و حال نوبت مبحث اتصال به بانک‌های داده است. در واقع پویا بودن صفحات وب پی‌اچ‌پی بدون اتصال به بانک‌های اطلاعاتی بی‌معنی به نظر می‌رسد. در این جلسه می‌خواهیم روش اتصال به یکی از محبوب‌ترین و پرکاربردترین بانک‌های اطلاعاتی یعنی MySql را به شما آموزش دهیم. در ادامه با زومیت همراه باشید.
تبلیغات
D4-mcid4

با اتصال به بانک‌های اطلاعاتی تحت سرور می‌توانیم داده‌های مورد نظرمان را در جداول این بانک‌های اطلاعاتی ذخیره کنیم و در مواقع لزوم به سرعت به آن‌ها دسترسی داشته باشیم. همچنین در مواقعی نیاز به بروزرسانی اطلاعات و نیز حذف آن‌ها خواهیم داشت.

پی‌اچ‌پی از بانک‌های اطلاعاتی مختلفی پشتیبانی می‌کند. اما یکی از محبوب‌ترین و پراستفاده‌ترین بانک‌های اطلاعاتی در بین برنامه‌نویسان از زبان MySQL است. در این جلسه روش اتصال به این بانک داده را با PHP به شما آموزش خواهیم داد و نیز ۴ عملیات اصلی کار با بانک‌های اطلاعاتی را به مرور فرا خواهید گرفت.

از این جلسه شروع به ساخت یک CMS (سیستم مدیریت محتوا = Content Managment System) می‌کنیم. قبل از هر چیز نیاز است الگوریتم ساده‌ای برای این پروژه ایجاد کنید. اما در اینجا برای جلوگیری از سنگین شدن این جلسه بخش الگوریتم را به خودتان واگذار می‌کنیم.

در کل باید بدانید قصد داریم یک پروژه‌ بسازیم که با بانک اطلاعاتی MYSQL ارتباط داشته باشد و بتوان با استفاده از آن مطالب جدیدی را در بانک داده ذخیره سازی کرد. هدف ما ایجاد بخشی برای ارسال مطلب، بخشی برای ویرایش مطالب ارسال شده، امکان حذف مطالب ارسال شده و نیز نمایش مطالب ارسال شده است. چهار عمل اصلی در ارتباط با بانک‌های داده وجود دارد که به اختصار آن‌ها را CURD می‌نامند. C برای ساختن (Create) و U برای بروزرسانی (Update) و R برای خواندن (Read) و نهایتا D برای حذف (Delete).

کپی لینک

اتصال به بانک داده

قبل از این کار یک پوشه جدید در پوشه htdocs نرم‌افزار Xampp ایجاد کنید و نام آن را cms بگذارید. حالا در پوشه cms یک فایل به نام config.php ایجاد کنید. این فایل در واقع تنظیمات مربوط به سیستم‌ ما را نگه‌داری خواهد کرد. همچنین از طریق این فایل به بانک داده متصل خواهیم شد.

اما ابتدا باید بانک اطلاعاتی مورد نظرمان را ایجاد کنید. پس از اجرای Xampp در پنل مدیریت این نرم‌افزار سرویس MySQL را نیز همانند سرویس Apache اجرا کنید.

xampp

حالا مرورگر خود را باز کرده و به آدرس http://127.0.0.1/phpmyadmin بروید. در این بخش شما می‌توانید بانک‌های اطلاعاتی سرور محلی خود را مشاهده، ایجاد و حذف کنید. پس از اجرای آدرس فوق باید با صفحه‌ای مانند زیر مواجه شوید.

mysql

همانطور که در تصویر با کادر قرمز مشخص شده، روی Database کلیک کنید. در این بخش می‌توانید یک بانک اطلاعاتی جدید بسازید. نام بانک اطلاعات مورد نظر خود را باید در کادر مربوطه همانند تصویر زیر وارد کنید. همچنین نوع یونیکد مورد نظر برای این بانک‌ داده را هم با استفاده از منو کشویی مقابل فیلد نام آن، می‌توانید تعیین کنید. از آنجا که زبان ما فارسی است بهترین کار در این مرحله انتخاب یونیکد utf-8 است. پس همانند تصویر زیر نام بانک اطلاعاتی جدید خود را cms و نوع آن را هم utf8-general-ci تعیین کنید.

creating mysql db

حال باید جداول مورد نظرتان را ایجاد کنید. اما برای جلوگیری از سنگین شدن مبحث و اینکه هدف ما آموزش php است، جداول مورد نیاز برای این پروژه را ساخته‌ایم و شما نیز برای ساختن این جداول مراحل زیر را پس از ساختن بانک اطلاعاتی یاد شده انجام دهید. پس از اینکه روی دکمه Create کلیک کنید، بانک اطلاعاتی cms ایجاد خواهد شد. حالا وارد بخش sql شوید و همانند تصویری که در ادامه می‌بینید، کد زیر را در بخش مربوطه قرار داده و سپس بر روی دکمه Go کلیک کنید.

-- phpMyAdmin SQL Dump-- version 4.5.1-- http://www.phpmyadmin.net---- Host: 127.0.0.1-- Generation Time: May 28, 2016 at 02:13 PM-- Server version: 10.1.9-MariaDB-- PHP Version: 5.6.15SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8mb4 */;---- Database: `cms`---- ------------------------------------------------------------ Table structure for table `posts`--CREATE TABLE `posts` ( `id` int(11) NOT NULL, `title` varchar(200) NOT NULL, `text` text NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;---- Indexes for dumped tables------ Indexes for table `posts`--ALTER TABLE `posts` ADD PRIMARY KEY (`id`);---- AUTO_INCREMENT for dumped tables------ AUTO_INCREMENT for table `posts`--ALTER TABLE `posts` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

کد بالا برای ایجاد یک جدول به نام posts است که این جدول سه فیلد دارد. برای هر مطلب یک فیلد برای شماره مطلب وجود دارد که این شماره برای هر رکورد از جدول یکتا خواهد بود. همچنین یک فیلد برای عنوان و یک فیلد نیز برای متن مطلب در نظر گرفته‌ایم. یونیکد این جدول و تمامی فیلد‌های آن نیز utf8-general-ci است.

create cms tables

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

حالا برگردیم به بخش پی‌اچ‌پی. فایل config.php را باز کنید و کد زیر را در آن قرار دهید:

$dbhost = "localhost";$dbuser = "root";$dbname = "cms";$dbpass = "";$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);if ($connect_db){ echo "we Connected to db successfully!";}else{ echo "error in connecting db";}?>

در کد بالا ابتدا ۴ متغیر تعریف کرده و آن‌ها را مقداردهی کردیم. برای اتصال به بانک‌اطلاعاتی mysql در php نیاز به ۴ مشخصه خواهید داشت. آدرس میزبان بانک داده که در اینجا متغیر dbhost است، نام کاربری بانک داده که در اینجا dbuser است، نام بانک داده که در اینجا dbname است و نهایتا رمزعبور کاربر بانک داده که در اینجا dbpass است. در بیشتر مواقع آدرس میزبان بانک داده همان localhost خواهد بود. در نرم‌افزار زمپ نام کاربری تمام بانک‌های داده‌‌ای که می‌سازیم root است و این کاربر رمزعبور ندارد و به همین دلیل مقدار dbpass را خالی گذاشته‌ایم. نام بانک داده‌ نیز همان نامی خواهد بود که در هنگام ساختن بانک اطلاعاتی مورد نظر خود تعیین کرده‌اید و در این پروژه نام تعیین شده ما cms بود. 

حال باید با استفاده از تابع mysql_connect به بانک داده متصل شویم. این تابع سه آرگومان ورودی دارد که به ترتیب آدرس میزبان بانک داده، نام کاربری بانک داده و رمزعبور کاربر بانک داده هستند. خروجی این تابع نیز یا true خواهد بود یا false. در کد بالا ما خروجی این تابع را در متغیر connect_db ذخیره می‌کنیم و سپس با یک دستور if بررسی کرده‌ایم که اگر اتصال به درستی برقرار شد پیام مناسب به کاربر نمایش داده شود و اگر اتصال انجام نشده بود پیام خطای عدم اتصال به بانک داده نمایان شود. 

پس از اینکه مراحل فوق را انجام دادید یک فایل دیگر به نام index.php در پوشه cms ایجاد کنید. سپس در این فایل کد زیر را قرار دهید:

include ("config.php");?>

همانطور که احتمالا متوجه شده‌اید ما فایل config.php را با کد بالا در فایل index,php فراخوانی کرده‌ایم. حالا اگر آدرس http://127.0.0.1/cms/index.php را در مروگرتان اجرا کنید، باید با عبارت we Connected to db successfully! مواجه شوید. در غیر این صورت یکی از مراحل را اشتباه انجام داده‌اید، چراکه در این صورت اتصال به بانک داده انجام نشده است. اما اگر پیغام یاد شده را مشاهده می‌کنید یعنی با موفقیت به بانک داده cms متصل شده‌ایم. اگر همه چیز به درستی انجام شده بخش if فایل config.php را حذف کنید یا آن را به صورت کامنت درآورید.  همچنین یک دستور دیگر برای انتخاب بانک اطلاعاتی cms که آن را در مراحل قبلی ایجاد کردیم به این فایل اضافه می‌کنیم. در نهایت کد config.php شما باید شبیه به زیر باشد:

$dbhost = "localhost";$dbuser = "root";$dbname = "cms";$dbpass = "";$connect_db = mysql_connect ($dbhost, $dbuser, $dbpass);mysql_select_db($dbname,$connect_db);?>

با استفاده از تابع mysql_select_db می‌توانید به بانک اطلاعاتی مورد نظر خود در سرور mysql متصل شوید. همانطور که می‌بینید این تابع دو آرگومان دارد که ورودی اول نام بانک اطلاعاتی که قصد متصل شدن به آن را داریم است و مورد دوم که تعریف آن اجباری هم نیست، به خروجی تابع متصل شدن به سرور MySQL اشاره دارد. در اینجا ما خروجی تابع را در متغیر connect_db قرار داده بودیم و از همین رو در آرگومان دوم تابع mysql_select_db نام این متغیر را وارد کرده‌ایم.

اما برای درک بهتر ادامه این آموزش باید با ساختار جدولی که ساخته‌ایم آشنا شوید. به شکل زیر دقت کنید:

posts table

در نتیجه ما یک بانک اطلاعاتی به نام cms داریم. هر بانک اطلاعاتی می‌تواند شامل چند جدول باشد و هر جدول نیز شامل یکسری فیلد است.

در اینجا جدول ما posts نام دارد و هر سطر آن (هر رکورد) شامل سه فیلد id و title و text است. تعیین نام فیلد‌ها و نوع آن‌ها در هنگام ساخت جدول انجام می‌شود و در این مورد نام‌های انتخابی ما سه موردی بود که اشاره کردیم. همانطور که در تصویر بالا می‌بینید هر مطلب به صورت یک سطر جدید در جدول posts ذخیره خواهد شد و هر مطلب سه مشخصه id یا شناسه یکتای مطلب، title برای عنوان و text برای متن مطلب را شامل می‌شود. 

در جلسه بعد پروژه خود را ادامه خواهیم داد و رفته رفته آن را کامل‌تر می‌کنیم. پیشنهاد می‌کنیم برای درک بهتر آموزش‌های بعدی کمی در مورد بانک اطلاعاتی mysql و نیز دستورات sql در گوگل جستجو کنید و در میان مطالب بسیار زیاد فارسی منتشر شده در این مورد کمی تحقیق کنید تا با آمادگی بیشتری بتوانید ادامه آموزش‌ها را پیگیری کنید.

اگر هر گونه سوالی در مورد مباحث این جلسه برایتان پیش‌ آمده آن را در بخش نظرات اعلام کنید.

مقاله رو دوست داشتی؟
نظرت چیه؟
تبلیغات
D5-b3IranServer
داغ‌ترین مطالب روز
دختر جوان درحال کار با گوشی درحالت آفلاین در اتاق
۷ اپلیکیشن‌ برای ارتباط بی‌سیم در شرایط قطع آنتن و وای‌فای

وقتی ارتباطات رایج مثل شبکه‌های موبایل از کار می‌افتند، راه‌های دیگری برای ارسال پیام وجود دارند؛ با این اپ‌ها همیشه در دسترس بمانید.

109
2 روز قبل
یک دختر جوان در کنار کیف کمک‌های اولیه و نور چراغ‌قوه
چگونه برای زمان قطع برق، آب و گاز آماده باشیم؟

در شرایط بحرانی، حفظ آرامش و دانش بقا اهمیت بالایی دارد. در این مقاله شما را با دستورالعمل‌هایی آشنا می‌کنیم تا آماده‌ی وضعیت اضطراری باشید.

167
2 روز قبل
بهترین پاوربانک های بازار در سال ۲۰۲۳ از سامسونگ و شیائومی تا باسئوس
بهترین پاور بانک‌ برای گوشی اندرویدی و آیفون [خرداد ۱۴۰۴]

در مقاله‌ی پیش‌ رو، با بهترین پاور بانک بازار ایران برای گوشی اندروید و آیفون از برندهایی مانند انکر، راوپاور، باسئوس و مک دودو آشنا می‌شویم.

104
2 روز قبل
نوزاد انسان در حال خواب
از «هیتلر» تا «سارا»؛ اسم‌های ممنوعه در کشورهای مختلف

هر کشوری محدودیت‌های خاص خودش را در انتخاب اسم برای افراد دارد؛ اسم‌هایی عجیب نظیر «ملکه» و «هیتلر» و حتی «سارا.»

250
2 روز قبل
چراغ راهنما ژاپن
چرا ژاپنی‌ها چراغ راهنمایی آبی دارند؟

سبز به معنای حرکت و قرمز به معنای ایست، کدی جهانی است که در تمام چراغ‌های راهنمای کشورها رعایت می‌شود، اما ژاپن استثنا است.

65
2 روز قبل
پناه گرفتن مادر و فرزند در شرایط بحرانی در پناهگاه
نحوه صحیح پناه گرفتن در شرایط بحرانی و نکات پناه گیری در هر مکان

دانستن نکات و نحوه‌ی پناه‌گیری در شرایط بحرانی می‌تواند جان شما و عزیزانتان را حفظ کند.

95
2 روز قبل
کیف اضطراری در مواقع بحران
آمادگی برای شرایط اضطراری: راهنمای کامل آماده‌سازی کوله نجات

چه وسایلی را باید در کیف نجات بگذاریم؟ در این مطلب برای شما توضیح می‌دهیم که در مواقع بحران چه وسایلی را باید همراه خود داشته باشید.

30
1 روز قبل
تبلیغات
DN-DNShatel

نظرات

با چشم باز خرید کنید
زومیت شما را برای انتخاب بهتر و خرید ارزان‌تر راهنمایی می‌کند
ورود به بخش محصولات