معرفی توابعی در ارتباط با پایگاه داده در PHP

آموزش PHP

معرفی توابعی در ارتباط با پایگاه داده در PHP
سری آموزش های فصل دهم:

ارتباط PHP با MySOL

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

آموزش امروز :

معرفی چند تابع مفید در مورد پایگاه های داده

ارتباط PHP با MySOL

در بخش قبل، توابع را مورد مطالعه قرار دادیم و در این بخش توابع دیگری را بررسی می کنیم که برای کارکردن باپایگاه داده مفید هستند.

1- تابع()mysql_list_dbs :

اسامی موجود در پایگاه داده را در سرور SQL نشان می دهد(مثل دستورshow databases):

;result = mysql_list_dbs($db)$
2– تابع ()mysql_list_tables:

لیست جدول های موجود در یک پایگاه داده را بر می گرداند(مثل دستور show tables است):

;result = mysql_list_tables(“database”,$db)$

Database نام پایگاه داده است که جدول های آن نمایش داده می شوند.

3 -تابع ()mysql_affected_rows:

مشخص می کند چند سطر تحت تاثیر دستورات update,insert یا delete قرار گرفته اند:

;num = mysql_affected_rows([$db])$

توجه کنید که استفاده از db$ اختیاری است. اگر هیچ سطری تحت تاثیر قرار نگیرد، مقدار صفر برگردانده می شود.

4-توابع ()addslashes و ()stripslashes :

این دو تابع کاملا به هم نزدیک هستند. تابع ()addslashes رشته ای را به عنوان پارامتر دریافت کرده، قبل از نقل قول یکانی موجود در رشته، یک حرف \قرار می هد. به عنوان مثال، فرض کنید مقادیر زیر باید در پایگاه داده ذخیره شوند:

“i’m a php developer”

‘i’m a php developer’

‘i\’m a php developer’

رشته ی اول به درستی در پایگاه داده ذخیره می شود، زیرا در داخل نقل قول دوتایی قرار دارد. و همچنین رشته ی دوم نمی تواند در پایگاه داده ذخیره شود، زیرا رشته در نقل و قول یکانی ذخیره شد که در داخل آن نیز یک نقل قول وجود دارد.

رشته ی سوم  به خوبی در پایگاه داده ذخیره می شود، زیرا قبل از نقل قول یکانی ،\ قرار گرفته است. بنابراین، قبل از نوشتن رشته ها در پایگاه داده باید تابع ()addslashes را به صورت زیر بر روی آن اجرا کرد:

;str = addslashes($str)$
معرفی سایت خارجی:

https://php.net

https://php.org

https://laravel.com

https://php-fig.org

وقتی رشته ای از پایگاه داده بازیابی شد، برای این که به حالت اول برگردد، باید تابع ()stripslashes را به صورت زیر بر روی آن اجرا کرد:

;()str = stripslashes$
5- تابع ()htmlspecialchars:

در HTML تعداد از کاراکترهای ویژه وجود دارندکه باید با آن ها رفتار ویژه ای داشت. این کاراکترهای ویژه در HTML ارزش خاصی دارند. به عنوان مثال > شروع دستور HTML را نشان می دهد. اگر این کاراکتر در ورودی کاربر وجود داشته باشد و این ورودی در صفحه HTML قرار گیرد، مشکلاتی را به وجود می آورد.

مفسر فرض می کند هر چه بعد از آن آمده است(تارسیدن به کاراکتر<)، به عنوان دستور HTML منظور می شود.

برای پرهیز از این مشکل، می توان آن را به صورت یک نهاد HTML نوشت که به صورت lt;$ است. تابع ()htmlspecialchars از تبدیل این گونه کاراکترهای HTML به نهادهای HTML مواظبت می کند. این تابع رشته ای را در یافت کرده، تمام کاراکترهای ویژه را به شکل امن تبدیل می کند(نهاد HTML) و رشته اصلاح شده را بر می گرداند:

;str = htmlspecialchars($str)$

کاراکترهای زیر در تابع تفسیر می شوند:

کاراکتر ویژه نهاد html
&(ampersand) &amp;
“(double quote) &quot;
< (less than) &lt;
> (greater than) &qt;
6- تابع ()mysql_list_fields:

لیستی از فیلد های یک جدول را بر می گرداند:

;result = mysql_list_fields(“dname”,”tname”)$

dname نام پایگاه داده و tname نام جدولی است که فیلد های آن باید بازیابی شوند.result$ اشاره گری است که به لیستی از فیلدها اشاره می کند.

7- () mysql_num_fields :

متغیر نتیجه پرس و جو را دریافت کرده تعداد فیلدهای موجود در آن را شمارش می کند.

;num = mysql_num_fields($result)$
8- توابع()mysql_field_name،()mysql_field_type و ()mysql_field_len

خواص فیلدها را برمیگردانند.تابع ()mysql_field_name نام فیلد را بر می گرداند که به صورت زیر به کار می رود:

;fname = mysql_field_name($result,$num)$

واین دستور، نام فیلد شماره num$ را در متغیر fname$ قرار میدهد.تابع ()mysql_field_len طول فیلدی را برمی گرداند و به صورت زیر به کار می رود:

;len = mysql_field_len($result,$num)$

همچنین این دستور،طول فیلد شماره num$ را در متغیر len$ قرار می دهد. تابع ()mysql_field_type نوع فیلدی را برمی گرداند و به صورت زیر به کار می رود:

;type = mysql_field_name($result,$num)$

این تابع نوع فیلد شماره num$ را در type$ قرار می دهد.

مثال :

طراحی صفحاتی برای دریافت اطلاعات از کاربر و قراردادن آنها در جدول های پایگاه داده. این برنامه ، اطلاعات مربوط به کتاب ها را از طریق فرمی دریافت کرده در جدول books از پایگاه داده ی publisher ذخیره میکند.

نکته: قبل از این که بتوانید این مثال را پی گیری کنید، باید براساس مطالب آموزشی فصل 9 پایگاه داده ی publisher و جدول books را در آن پایگاه داده ایجاد کنید وگرنه قادر به اجرای این مثال نیستید. علاوه بر این، در این مثال برای سهولت از فیلد pdate جدول books استفاده نخواهیم کرد.

مراحل طراحی صفحه:

1 دستورات زیر را در فایل ch10_1.html تایپ و در پوشه ی www\ch10 ذخیره کنید:

<html>

<body>

<“form method = “post” action=”ch10-1.php>

<“table border=”1>

<tr>

<td> <b> ISBN </b> </td>

<td> <input type=”text” name=”isbn” size=”13″> </td>

<tr/>

<tr>

<td> <b> Author </b> </td>

<td> <input type=”text” name=”Author” size=”13″> </td>

<tr/>

<tr>

<td> <b> Title </b> </td>

<td> <input type=”text” name=”title” size=”13″> </td>

<tr/>

<tr>

<td> <b> price </b> </td>

<td> <input type=”text” name=”price” size=”13″> </td>

<tr/>

<tr>

<td> <b> page </b> </td>

<td> <input type=”text” name=”page” size=”13″> </td>

<tr/>

<tr>

<td width=”20″> </td>

<td> <input type=”submit” name=”submit” value=”submit”> </td>

<tr/>

<table/>

<body/>

<html/>

این دستورات یک فرم HTML را برای دریافت اطلاعات مربوط به کتاب ها ایجاد می کند که شامل isbn ، مولف، عنوان قیمت و تعداد صفحات کتاب است. دکمه ای به نام Submit ایجاد می شود که پس از پر کردن فرم و فشار دادن این دکمه، برنامه دیگری به نام ch10_1.php اجرا می شود تا اطلاعات این فرم را وارد جدول پایگاه داده کند.

2 دستورات زیر را در فایل ch10-1.php تایپ و ذخیره کنید.

php?>

retrieve form variables//

;isbn = $_post[‘isbn’]$

;author = $_post[‘author’]$

;title = $_post[‘title’]$

;price = $_post[‘price’]$

;page = $_post[‘page’]$

if (strlen($isbn) == 0 or strlen($author) ==0)

}

;”!echo ” go back and fill all fields

;exit

{

connect to mysql server//

;db = mysql_connect(“localhost”,”root”, “jgomi”)$

if(!$db)

}

;”echo ” Error : cannot open connection

;exit

{

;mysql_select_db(‘publisher’)

query = “insert into books

(isbn , author, title, price , page)value

;mysql_close($db)

<?

دستورات 3تا7 متغیر های فرم را که مشخصات کتاب ها هستند بازیابی کرده در متغیرهای PHP قرار می دهند. دستور 8 بررسی می کند که فیلدهای author,isbn خالی نباشند. اگر خالی باشند، پیامی صادر شده اعلان می کندکه به عقب برگردیدو تمام فیلدها را پر کنید.

و نیز دستور 14با سرور MySQL ارتباط برقرار می کند . دستور15 بررسی می کند. که در صورت عدم برقراری اتصال ،پیامی صادر کندو به برنامه خاتمه دهد.همچنین  دستور 20 پایگاه داده ی publisher را باز می کند.خطوط 21تا 23 رشته پرس و جو را تعریف میکنند خط 24 رشته پرس وجو را بر روی پایگاه داده ی اجرا می کند و نتیجه را در result$ قرار می دهد.

دانلود رایگان افزونه:

دانلود افزونه افزایش سرعت سایت WP Rocket 3.13.4

خط25 بررسی می کند آیا پرس و جو انجام شده است یا خیر. اگر انجام شده باشد ، تعداد سطری های (رکوردهای) اضافه شده به جدول را چاپ می کند. خط 27 اتصال با سرور MySQL را می بندد.

3 مرورگر را اجرا کرده در نوار آدرس آن را تایپ کنید و کلید Enter را فشار دهید.

4 اطلاعات زیر را وارد کنید.

5 دکمه Submit را کلیک کنید تا داده ها در جدول books ذخیره شوند. پس از وارد کردن اطلاعات در جدول، صفحه ای مانند شکل زیر ظاهر می شود و اعلان می کند یک کتاب به جدول پایگاه داده اضافه شده است. حتما می خواهید مطمئن شوید این اطلاعات وارد جدول شده اند. مثال زیر به شمار می آموزد که چگونه اطلاعات موجود در جدول پایگاه داده را بازیابی کرده در مرورگر نمایش دهید.

برگرفته از :

کتاب: آموزش گام به گام (PHP)

دکتر عین الله جعفر نژاد قمی

پاسخ به سوال دوستان :

شاید تاکنون به این فکر کرده باشین که چرا باید برای کسب و کار خود وبسایت داشته باشین ؟

دلیل اینکه می‌گوییم باید سایت داشته باشید این آمار است. توجه کنید که ۸۱٪ از افراد قبل از

تصمیم گیری در مورد خرید و فروش در یک کسب وکار یا خدمات، در اینترنت تحقیق می کنند.

یعنی ۲۵.۹۲ میلیون نفر هستند که مشاغل را به صورت آنلاین جستجو می کنند. با این وجود ۴۶% کسب و کارها فکر می‌کنند نیاز به وب سایت ندارند.

توجه داشته باشید که جهان به سمت دیجیتالی شدن پیش می‌رود و نداشتن وب سایت

برای یک شرکت یا هر کسب و کاری، به منزلۀ جا ماندن از گردونۀ روزگار است.

برای اطلاعات بیشتر با همکاران ما در شرکت آراز پردازش در ارتباط باشید

آدرس ایمیل:  info@arazpardazesh.com

اینستاگرام شرکت:   https://instagram.com/araz_pardazesh_kla

تماس با ما:     https://arazpardazesh.com/contact

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

18 + نه =