close
دانلود فیلم
استفاده از mysql بخش اول

محصول مرتبط با این پست : پکیچ 110 ساعت آموزش برنامه نویسی و طراحی سایت

فیلم های آموزش PHP به زبان فارسی

 

 

php برای بانک اطلاعاتی mysql توابع خاصی را درنظر گرفته است که در اینجا به معرفی متداول ترین و کاربردی ترین آنها با ذکر مثال وکد نمونه می پردازم برای شرع تعدادی از توابع را معرفی وپس ازاتمام معرفی توابع در ادامه تکنیک های خاص استفاده از آنها را ذکر خواهم کرد.



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

حتما توجه کنید که این لیست فقط مانند یک فهرست عمل می کند و برای آگاهی بیشتر از توابع ذکر شده باید به مستندات php مراجعه کنید . البته در ادامه پرکاربرد ترین و عمومی ترین آن ها را توضیح خواهم داد.این مطالب را می توانید در مستندات php به زبان اصلی بخوانید هدف از این مطالب آشنایی شما با برخی توابع کاربردی است که در قسمت های آتی تکنیک های استفاده از آن ها را به شما یاد خواهم داد و در انتها با هم یک پروژه را انجام میدهیم.برخی از مطالب و توابعی را هم که در اینجا ذکر نکرده ام را (مثل حلقه foreach) در ادامه و در طی کار به شما خواهم گفت.

توابع مورد کاربرد در php نسخه 4.33

Php 4.3.3 functions for working with mysql

*=توابعی که در این بخش راجع به آن ها صحبت خواهم کرد

**=قسمت هایی که در صورت ترجمه به اصل مطلب صدمه می خورد

*mysql_affected_rows – تعداد رکورد های تحت تاثیر قرار گرفته در آخرین پرس و جوی انجام داده را می گیرد

mysql_change_user – کاربر فعال را در ارتباط جاری با بانک اطلاعاتی را عوض میکند عوض می کند

mysql_client_encoding –  تنظیمات کاراکتری پیش فرض را از ارتباط جاری را باز میگرداند

*mysql_close – ارتباع جاری با پایگاه داده  را قطع میکند

*mysql_connect – یک ارتباط جدید با پایگاه داده برقرار می کند

mysql_create_db – یک بانک اطلاعاتی میسازد

mysql_data_seek – نشانگر (پیوینتر) داخلی مجموعه جواب را حرکت می دهد

mysql_db_name – اطلاعات جواب پرس و جو را می گیرد

mysql_db_query – پرس و جو را ارسال می کند

mysql_drop_db – بانک اطلاعاتی را حذف میکند

mysql_errno – شماره خطای ایجاد شده در آخرین عملیات را باز می گرداند

mysql_error – متن خطای ایجاد شده در آخرین عملیات را باز میگرداند

mysql_escape_string –یک رشته را برای کار با بانک اطلاعاتی تطبیق می کند

*mysql_fetch_array – یک مجموعه جواب بازگشتی را در آرایه ای انجمنی یا اندیسی یا هر دو می ریزد

*mysql_fetch_assoc - یک مجموعه جواب بازگشتی را در آرایه ای انجمنی می ریزد

mysql_fetch_field – اطلاعات یک ستون را از یک مجموعه جواب میگیرد و یک شی را باز میگرداند

mysql_fetch_lengths – طول هر کدام از جواب های خروجی را باز می گرداند

*mysql_fetch_object – یک مجموعه جواب را در یک شی می ریزد

*mysql_fetch_row – یک مجموعه جواب را به صورت یک آرایه شمارشی در می آورد

mysql_field_flags – نمایه فیلد معرفی شده در مجموعه جواب را باز می گرداند

mysql_field_len – طول فیلد مشخص شده را باز میگرداند

mysql_field_name – نام فیلد مشخص شده در مجموعه جواب را باز می گرداند

mysql_field_seek – نشانه گر جواب را در فیلد مبدا مشخص شده قرار می دهد

mysql_field_table – نام جدولی را که فیلد در آن قرار دارد را باز می گرداند

mysql_field_type – نوع فیلد موجود در مجموعه جواب را باز می گرداند

mysql_free_result – حافظه را از مجموعه جواب خالی می کند

mysql_get_client_info – اطلاعات خدمات گیرنده پایگاه داده را بدست می آورد

mysql_get_host_info - اطلاعات میزبان  پایگاه داده را بدست می آورد

mysql_get_proto_info – پروتکل(قوانین) مورد استفاده در پایگاه داده را میگیرد  نسخه

mysql_get_server_info - اطلاعات خدمات دهنده  پایگاه داده را بدست می آورد

mysql_info – اطلاعاتی در مورد جدیدترین پرسش و پاسخ را باز می گرداند

*mysql_insert_id – شناسه آخرین فیلد اضافه شده را باز می گرداند

*mysql_list_dbs – بانک های اطلاعاتی موجود را نشان می دهد

*mysql_list_fields – ستون های جدول را نشان می دهد

mysql_list_processes – پردازش های انجام شده را نشان می دهد

*mysql_list_tables - لیست جدول های یک بانک اطلاعاتی را نشان می دهد

*mysql_num_fields – تعداد فیلد های یک مجموعه جواب را باز می گرداند

*mysql_num_rows - تعداد سطرهای یک مجموعه جواب را باز می گرداند

*mysql_pconnect – یک اتصال دائمی با پایگاه داده بر قرار می کند

*mysql_ping – یک ارتباط را پینگ می کند و در صورت برقرار نبودن ارتباط آنرا برقرار میسازد

*mysql_query – یک پرس و جو را ارسال میکند

mysql_real_escape_string کاراکتر های ویژه را در یک رشته برای استفاده از پایگاه داده بهینه میکند و در این عمل از تنظیمات کاراکتری موجود در پایگاه داده استفاده می کند.

*mysql_result - اطلاعات مجموعه جواب را باز میگرداند

*mysql_select_db – یک بانک اطلاعاتی را نتخاب می کند

mysql_stat – وضعیت سیستم جاری را باز می گرداند

mysql_tablename – نام جدول فیلد را باز میگرداند

**mysql_thread_id –جاری را باز می گرداند thread شناسه

mysql_unbuffered_query – یک پرس و جو را بدون واسطه به پایگاه داده ارسال می کند

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

توجه کنید لازم نیست شما تک تک این توابع را حفظ کنید بلکه با دانلود کردن مرجع کامل php از سایت php.net می توانید هر زمان که لازم داشتید توضیحات مربوط به آن را بخوانید من توصیه می کنم که فایل chm را دانلود کنید زیرا استفاده از آن سریع تر و راحت تر است

در اینجا کاربردی ترین توابع را در نسخه جاری php(4.3.3) بحث می کنم

* تابع mysql_ping توجه کنید این تابع تنها کاری که می کند بررسی اتصال به موتور mysql است و معمولا در اسکریپت های تست که برای تست کردن آمادگی سرور بکار می رود استفاده می شود.این تابع یک اتصال به mysql را ping می کند و در صورت موفقیت و بازگشت جواب true و در غیر اینصورتfalse را باز می گرداند.در صورت قطع بودن ارتباط سعی میکند آنرا بر قرار سازد.

mysql_ping()
Ping a server connection or reconnect if there is no connection (PHP 4 >= 4.3.0)
bool mysql_ping ( [resource link_identifier ] )
Example:
<?php
$conn
=mysql_connect($db_host, $db_user, $db_password
);
$db=mysql_select_db($db_name
);
if(
mysql_ping($conn
)){
echo
“your database is online”,
} else {
echo ”your database is offline”,
}
mysql_close($conn);
?>

 

* تابع mysql_connect که وظیفه برقراری ارتباط با بانک اطلاعاتی را برعهده دارد و معمولا اولین خط اسکریپت کار با mysql را تشکیل میدهد زیرا تا زمانی که این تابع مقدار true را بازنگرداند شما اصلا به موتور mysql متصل نیستید تا بتوانبد کاری را انجام دهید!توجه کنید پس از پایان اسکریپت یا فراخوانی تابع mysql_close این اتصال قطع خواهد شد.

mysql_connect()
Open a connection to a MySQL Server (PHP 3, PHP 4 )
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags ]]]]] )
Example:
<?php
$conn
= mysql_connect(
“localhost”,”mysql username”,”mysql _password”) or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(”your database name”,$conn) or die(Could not select database:.mysql_error());
$query = mysql_query (”select  * from tablename”);
mysql_close ($conn);
?>

* تابع mysql_pconnect که وظیفه برقراری ارتباط دائمی با بانک اطلاعاتی را داراست و بعد از پایان اسکریپت و یا فراخوانی تابعmysql_close ارتباط قطع نمی شود.کاربرد این تابع در مواقعی است که شما می خواهید در زمان صرفه جویی کنید زیرا این تابع باعث می شود در فراخوانی های متعدد از همین ارتباط برای تبادل داده استفاده شود و ارتباط جدیدی بر قرار نگردد. معمولا این تابع زمانی استفاده می شد که چندین صفحه اتصال هایی با آرگومان ها ی مشابه را نیاز داشته باشند.

توجه کنید برای استفاده ازاین تابع شما حتما باید phpرا به عنوان ماژول نصب کنید نه CGI این یکی از راه های سریع کردن و بهینه کردن کد است اما توجه کنید که این امر می تواند باعث مشکل نیز بشود زیرا سبب ایجاد اتصالات بیهوده و بیکار که اصطلاحا آنها را idle می نامند می گردد توجه کنید این اتصالات به هر حال منابع سرور شما را مصرف خواهند کرد بنابراین کاربرد غلط آن می تواند موجب مشکلاتی شود.

mysql_pconnect()
Open a persistent connection to a MySQL server (PHP 3, PHP 4 )
resource mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]] )
Example:
<?php
$conn
=mysql_pconnect(
“localhost”,”mysql_username”,”mysql_password”) or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db (”your database name”,$conn) or die(Could not select database:.mysql_error());
$Query = mysql_query (”select  * from tablename”);
mysql_close ($conn);
?>
P = persistent = دائمی

* تابع mysql_close که باعث بسته شدن اتصال غیر دائمی به پایگاه داده می شود.

mysql_close()
Close MySQL connection (PHP 3, PHP 4 )
bool mysql_close ( [resource link_identifier ] )
Example:
<?php
$conn
= mysql_connect (
“localhost”,”mysql username”,”mysql_ password”) or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db (”your database name”,$conn) or die(Could not select database:.mysql_error());
$Query = mysql_query(”select  * from tablename”);
mysql_close ($conn);
?>

* تابع mysql_select_db که بوسیله این تابع از اتصال جاری یک پایگاه داده را انتخاب می کنیم تا دستورات بعدی ما رو آن پایگاه داده اعمال شود.

mysql_select_db()
Select a MySQL database (PHP 3, PHP 4 )
bool mysql_select_db ( string database_name [, resource link_identifier ] )
Example:
<?php
$conn
= mysql_connect(
“localhost”,” mysql_user ”,”mysql_ password”) or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(”your database name”,$conn) or die(Could not select database:.mysql_error());
$query = (”select  * from tablename”);
$result = mysql_query ($query);
mysql_close ($conn);
?>

تابع mysql_query که جزو مهترین توابع است زیرا این تابع دستورات sql شما را اجرا می کند این تابع معمولا با توابعmysql_fetch_* به همراه حلقه ها کار اصلی را در رابطه با پایگاه داده انجام میدهند

mysql_query()
Send a MySQL query (PHP 3, PHP 4 )
resource mysql_query ( string query [, resource link_identifier] )
Example:
<?php
$conn
= mysql_connect(
“localhost”,” mysql_user ”,”mysql_ password”) or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(”your database name”,$conn) or die(Could not select database:.mysql_error());
$query = (”insert into tablename values(1,2)”);
$result = mysql_query($query);
mysql_close($conn);
?>

· تابع mysql_result که برای یک رکورد از پردازش انجام شده توسط mysql_query() کاربرد دارد همان طور که قبلا گفتم برای خواندن تمامی رکورد ها باید از توابع mysql_fetch_* به همراه حلقه ها استفاده کرد.آرگومان اول مجموعه جواب اجرا شده بوسیله تابع mysql_query وآرکومان دوم شماره رکوردی که می خواهید بخوانید و آرگومان سوم فیلدی است که میخواهید بخوانید که در شورت معرفی نکردن آرگومان سوم اولین فیلد خوانده خواهد شد.

mysql_result()
Get result data (PHP 3, PHP 4 )
mixed mysql_result ( resource result, int row [, mixed field ] )
Example:
<?php
$conn
=mysql_connect(
“localhost”,” mysql_user ”,” mysql_password ”);
$db=mysql_select_db(”test”);
$query=”select * from test”;
$result=mysql_query($query);
if($result)   /*for testing result answer*/{
$record1=mysql_result($result,0,’name’);
echo ”Rcord 1 is:”,$record1;
echo ”<p>”;
$record2=mysql_result($result,1,’name’);
echo ”Rcord 2 is:”,$record2;
}
?>

تابع mysql_affected_rows که تعداد سطرهایی را که توسط آخرین دستور delete یاreplace, یا insert یا ,update تحت تاثیر قرار گرفته اند را باز می گرداند

mysql_affected_rows()
Get number of affected rows in previous MySQL operation (PHP 3, PHP 4 )
int mysql_affected_rows ( [resource link_identifier ] )
Example:
<?php
/* connect to database */
mysql_pconnect(
“localhost”, ”mysql_user”, ”mysql_password”) or
die(”Could not connect: ” . mysql_error());
mysql_select_db(”mydb”);
/* this should return the correct numbers of deleted records */
mysql_query(”DELETE FROM mytable WHERE id < 10”);
printf (”Records deleted: %dn”, mysql_affected_rows());
/* without a where clause in a delete statement, it should return 0 */
mysql_query(”DELETE FROM mytable”);
printf (”Records deleted: %dn”, mysql_affected_rows());
?>

تابع mysql_num_rows این تابع عملکردی مشابه تابع mysql_affected_rows دارد با این تفاوت که این تابع تعداد رکورد های مجمومه جواب بازگردانده شده از یک جستجوی select را بدست می آورد.از این تابع می توان برای بدست آوردن رکورهای یک جدول استفاده کرد.

mysql_num_rows()
Get number of rows in result (PHP 3, PHP 4 )
int mysql_num_rows ( resource result )
Example:
<?php
$conn
= mysql_connect(
“localhost”, ”mysql_user”, ”mysql_password”);
mysql_select_db(”database”, $conn);
$result = mysql_query(”SELECT * FROM table”, $link);
$num_rows = mysql_num_rows($result);
echo ”$num_rows Rowsn”;
?>

تابع mysql_free_result که وظیفه آزاد سازی حافظه مصرف شده بوسیله نتایج بدست آمده از query را داراست.این تابع در اسکریپت های طولانی که اعمال زیادی را انجام می دهند و حافظه زیادی را مصرف می کنند کاربرد دارد. ولی در اسکریپت های عادی به آن نیازی نیست زیرا درphp پس از پایان اسکریپت به طور خورکار حافظه اختصاص داده شده به query آزاد می شود.

mysql_free_result()
Free result memory (PHP 3, PHP 4 )
bool mysql_free_result ( resource result )
Example:
<?php
$conn
= mysql_connect(
“localhost”,”mysql username”,”mysql _password”) or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(”your database name”,$conn) or die(Could not select database:.mysql_error());
$query = mysql_query (”select  * from tablename”);
mysql_free_result ($query);
mysql_close ($conn);
?>

تابعmysql_fetch_array . همان طور قبلا بارها گفتم برای خواندن تمامی سطرهای یک جدول از توابع mysq_fetch_* به همراه حلقه ها استفاده میشود این توابع وظیفه دارند حاصل یک query را در یک آرایه یا مجموعه از اشیا بریزند تا بتوان به کمک حلقه ها تک تک آن ها را خواند.تابع mysql_fetch_array مجموعه جواب یک query را در یک آرایه می ریزد که بوسیله آرگومان دوم می توان طریقه ذخیره و دسترسی رادر آرایه(نوع آرایه) معیین کرد.

در اینجا لغات کلیدی را که در مثال های آتی استفاده می کنم را توضیح میدهم انها به عنوان ثابت در php تعریف شده اند .

ثابت

توضیحات

MYSQL_ASSOC

Columns are returned into the array having the fieldname as the array index.


بوسیله این ثابت می تونید از نام فیلدهای خود برای دسترسی به اطلاعات آن ها استفاده کنید

MYSQL_NUM

Columns are returned into the array having a numerical index to the fields. This index starts with 0, the first field in the result.


بوسیله این ثابت می توانید از شماره اندیس آرایه برای دسترسی به اطلاعات فیلد ها استفاده کنید

MYSQL_BOTH

Columns are returned into the array having both a numerical index and the fieldname as the array index.


بوسیله این ثابت می توانید از نام فیلد با اندیس آن در آرایه برای دسترسی به اطلاعات آن استفاده کنید

 

mysql_fetch_array()
Fetch a result row as an associative array, a numeric array, or both. (PHP 3, PHP 4 )
array mysql_fetch_array ( resource result [, int result_type ] )
1)Example for MYSQL_NUM:
<?php
mysql_connect(“localhost”, ”mysql_user”, ”mysql_password”) or
die(”Could not connect: ” . mysql_error());
mysql_select_db(”mydb”);
$result = mysql_query(”SELECT id, name FROM mytable”);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf (”ID: %s Name: %s”, $row[0], $row[1]);
}
mysql_free_result($result); ?>

2) Example forMYSQL_ASSOC:
<?php
mysql_connect(”localhost”, ”mysql_user”, ”mysql_password”) or
die(”Could not connect: ” . mysql_error());
mysql_select_db(”mydb”);
$result = mysql_query(”SELECTid, name FROM mytable);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
printf (”ID: %s Name: %s”, $row["id"], $row["name”]]]);
}
mysql_free_result($result);
?>

3) Example forMYSQL_BOTH:
<?php
mysql_connect(”localhost”, ”mysql_user”, ”mysql_password”) or
die(”Could not connect: ” . mysql_error());
mysql_select_db(”mydb”);
$result = mysql_query(”SELECTid, name FROM mytable”);
while ($row = mysql_fetch_array($result, MYSQL_BOTH))
{
printf (”ID: %s Name: %s”, $row[0], $row["name”]]]);
}
mysql_free_result($result);
?>

 

توجه کنید که در صورت معرفی نکردن ثابت به طور پیش فرض از MYSQL_NUMاستفاده میشود.

در ادامه تنها دو تابع از سری توابع mysql_fetch_* را معرفی میکنم زیرا تابع mysql_fetch_arrayتقریبا تمام نیاز های شما را بر طرف می کند اما در قسمت مباحث پیشرفته توابع mysql_fetch_fieldو mysql_fetch_lengthsرا نیزمعرفی خواهم کرد. توجه کنید شما هم اکنون هم میتوانید بدون مشکل یک برنامه کامل با php & mysqlبنویسید .

تابع mysql_fetch_rowکه عملکردی کاملا مشابه mysql_fetch_arrayبه همراه ثابت MYSQL_NUMدارد.

تابع mysql_fetch_assocکه عملکردی کاملا مشابه mysql_fetch_arrayبه همراه ثابت MYSQL_ASSOCدارد.

تابع mysql_fetch_object

این تابع رکورد های بازگردانده شده بوسیله یک دستور selectرا به صورت مجموعه ای از اشیا باز می گرداند که در پایان پس از اتمام رکورد ها بوسیله بازگرداندن falseاتمام رکورد ها را اعلام می کند.در صورتی که به برنامه نویسی شی گرا علاقه دارید این تابع را دوست خواهید داشت.

 

 

mysql_fetch_object()
Fetch a result row as an object (PHP 3, PHP 4 )
object mysql_fetch_object ( resource result )
<?php
mysql_connect
(
“hostname”, ”user”, ”password”);
mysql_select_db(”mydb”);
$result = mysql_query(”select * from mytable”);
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
?>

و آخرین تابع که یک تابع کاربردی است به نام mysql_insert_id
این تایع باعث بازگشت ID آخرین فیلد ایجاد شده بوسیله دستور insert می گردد.
*در جدول هایی که به طور ذاتی نمی توان برا ی آنها یک کلید اصلی (Primary key) تعریف کرد معمول است که یک فیلد به نام ID که دارای خاصیت AUTO_INCREMENT است تعریف می کنند که یک فیلد عددی است و برای فهمیدن تعداد رکور های جدول نیز کاربرد دارد.

mysql_insert_id()
Get the ID generated from the previous INSERT operation (PHP 3, PHP 4 )
int mysql_insert_id ( [resource link_identifier ] )
Example:
<?php
mysql_connect
(
“localhost”, ”mysql_user”, ”mysql_password”) or
die(”Could not connect: ” . mysql_error());
mysql_select_db(”mydb”);
mysql_query(”INSERT INTO mytable (name) values (”houtan’)”);
printf (”Last inserted record has id %dn”, mysql_insert_id());
?>

خب توابعی که فکر می کردم برای شروع کار با mysql لازم میشود را گفتم

 

 

 

 

لینک کوتاه پست
مطالب مرتبط با پست جاری
  • نکات مهم
    1- لطفا نظر خود را با زبان فارسی بیان کنید
    2- رایتم نظرات اسپم و تبلیغی شما را تایید نمی کند
    3- لطفا نظرات شما بدون ابهام و واضح باشد
  • نام
    ایمیل (منتشر نمی‌شود) (لازم)
    وبسایت
    :):(;):D;)):X:?:P:*=((:O@};-:B/:):S
    نظر خصوصی
    مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
    کد امنیتی
به کانال تلگرام سایت ما بپیوندید