علامت * یعنی توابعی که در این بخش راجع به آن ها صحبت خواهد شد.
علامت ** یعتی قسمت هایی که در صورت ترجمه به اصل مطلب صدمه می خورد.
*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 را باز می گرداند.در صورت قطع بودن ارتباط سعی میکند آنرا بر قرار سازد.
Ping a server connection or reconnect if there is no connection (PHP 4 >= 4.3.0)
bool mysql_ping ( [resource link_identifier ] )
Example:
$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:
$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);
?>
توجه کنید برای استفاده ازاین تابع شما حتما باید phpرا به عنوان ماژول نصب کنید نه CGI این یکی از راه های سریع کردن و بهینه کردن کد است اما توجه کنید که این امر می تواند باعث مشکل نیز بشود زیرا سبب ایجاد اتصالات بیهوده و بیکار که اصطلاحا آنها را idle می نامند می گردد توجه کنید این اتصالات به هر حال منابع سرور شما را مصرف خواهند کرد بنابراین کاربرد غلط آن می تواند موجب مشکلاتی شود.
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:
$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 = دائمی
Close MySQL connection (PHP 3, PHP 4 )
bool mysql_close ( [resource link_identifier ] )
Example:
$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);
?>
Select a MySQL database (PHP 3, PHP 4 )
bool mysql_select_db ( string database_name [, resource link_identifier ] )
Example:
$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);
?>
Send a MySQL query (PHP 3, PHP 4 )
resource mysql_query ( string query [, resource link_identifier] )
Example:
$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);
?>
Get result data (PHP 3, PHP 4 )
mixed mysql_result ( resource result, int row [, mixed field ] )
Example:
$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 ””;
$record2=mysql_result($result,1,’name’);
echo ”Rcord 2 is:”,$record2;
}
?>
Get number of affected rows in previous MySQL operation (PHP 3, PHP 4 )
int mysql_affected_rows ( [resource link_identifier ] )
Example:
/* 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());
?>
Get number of rows in result (PHP 3, PHP 4 )
int mysql_num_rows ( resource result )
Example:
$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”;
?>
آزاد می شود.
Free result memory (PHP 3, PHP 4 )
bool mysql_free_result ( resource result )
Example:
$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 مجموعه جواب یک query را در یک آرایه می
ریزد که بوسیله آرگومان دوم می توان طریقه ذخیره و دسترسی رادر آرایه(نوع آرایه) معیین کرد.
بوسیله این ثابت می تونید از نام فیلدهای خود برای دسترسی به اطلاعات آن ها استفاده کنید
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
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 ] )
۱)Example for MYSQL_NUM:
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); ?>
۲)Example for MYSQL_ASSOC:
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_ASSOC)) {
printf (”ID: %s Name: %s”, $row[“id”], $row[“name”]);
}
mysql_free_result($result);
?>
Example for MYSQL_BOTH3
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_BOTH)) {
printf (”ID: %s Name: %s”, $row[0], $row[“name”]);
} mysql_free_result($result);
?>
در ادامه تنها دو تابع از سری توابع 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 اتمام رکورد ها را اعلام می کند.در صورتی که به برنامه نویسی شی گرا علاقه دارید این تابع را دوست خواهید داشت.
Fetch a result row as an object (PHP 3, PHP 4 )
object mysql_fetch_object ( resource result )
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;
}
?>
این تایع باعث بازگشت ID آخرین فیلد ایجاد شده بوسیله دستور insert می گردد.
*در جدول هایی که به طور ذاتی نمی توان برا ی آنها یک کلید اصلی (Primary key) تعریف کرد معمول است که یک فیلد به نام ID که دارای خاصیت AUTO_INCREMENT است تعریف می کنند که یک فیلد عددی است و برای فهمیدن تعداد رکور های جدول نیز کاربرد دارد.
Get the ID generated from the previous INSERT operation (PHP 3, PHP 4 )
int mysql_insert_id ( [resource link_identifier ] )
Example:
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 لازم میشود را گفتم اما همان طور که قبلا گفتم توابع زیادی در php برای کار با mysql تعبیه شده است در قسمت مباحث پیشرفته توابعی را به شما خواهم گفت که توانایی های جالب و بعضا قدرتمندی دارند اما شما هم اکنون هم می توانید یک برنامه کامل و حرفه ای را با استفاده از این توابع بنویسید
که در ادامه یک برنامه برای تمرین با هم خواهیم نوشت اما به یاد داشته باشید تا زمانی که خودتان برنامه ننویسی و به مشکل برنخورید چیز زیادی در عمل یاد نخواهید گرفت در ضمن آخرین نکته اینکه اگر دارید تمرین میکنید و هیچ مشکلی در برنامه هایی که میخواهید بنویسی ندارید و می بینید همه چیز را بلدید فکر کنم باید در نحوه تمرین کردن خود تجدید نظر کنید.