با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش MySQL را دنبال می کنند. تاکنون با مباحث مهم و پایه در MySQL از جمله ایجاد و حذف دیتابیس و جداول آشنا شدیم، تمام این عملیات برای فراهم کردن زمینه ی ذخیره و مدیریت داده ها در جداول است، پس بعد از آشنایی با چگونگی ایجاد جداول در MySQL، باید با طریقه ی درج رکورد و داده ها در جداول آشنا شوید تا بتوانید داده های مرتبط با هر جدول را در فیلدهای مربوطه ذخیره کنید، برای این هدف باید با ساختار اصلی کار با دستورINSERT در MySQL و سینتکس اصلی آن آشنایی داشته باشید که در این خصوص از دستور INSERT INTO در MySQL برای درج داده ها استفاده می شود. در ادامه ی مباحث برای آشنایی با این دستور با ما همراه باشید.
مطالب این بخش شما را با سینتکس و چگونگی کار با دستور INSERT در MySQL آشنا می کند.
سینتکس عمومی SQL برای دستور INSERT INTO در MySQL به منظور درج داده در جداول MySQL به صورت زیر است :
1 2 3 | INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); |
برای درج داده های رشته ای حتما باید مقادیر را در تک یا دابل کوتیشن (مانند “value”) قرار دهید.
برای درج داده با استفاده از خط فرمان نیز باید از دستور INSERT INTO در MySQL استفاده کنید.
مثال زیر سه رکورد را در جدول tutorials_tbl ایجاد می کند :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> INSERT INTO tutorials_tbl ->(tutorial_title, tutorial_author, submission_date) ->VALUES ->("Learn PHP", "John Poul", NOW()); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO tutorials_tbl ->(tutorial_title, tutorial_author, submission_date) ->VALUES ->("Learn MySQL", "Abdul S", NOW()); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO tutorials_tbl ->(tutorial_title, tutorial_author, submission_date) ->VALUES ->("JAVA Tutorial", "Sanjay", '2007-05-06'); Query OK, 1 row affected (0.01 sec) mysql> |
نکته :
توجه داشته باشید که علامت های (<-) بخشی از دستور SQL نیستند، این علامت هنگام زدن کلید Enter و در خط بعدی بصورت خودکار ایجاد می شود.
در کد فوق برای فیلد tutorial_id مقداری در نظر نگرفته ایم چرا که این فیلد صفت AUTO_INCREMENT را داراست که برای هر سطر جدید یک شماره اضافه کرده و در این فیلد ذخیره می کند، در واقع این فیلد یک شمارنده ی سطر است.
در اسکریپت های PHP نیز ساختار دستور INSERT در MySQL برای درج داده ها استفاده می شود.
برای این منظور شما می توانید از همان دستور INSERT INTO در MySQL داخل تابع ()mysql_query در PHP برای درج داده استفاده کنید.
این مثال سه پارامتر را از کاربر می گیرد و آن ها را در جدول MySQL ذخیره می کند :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <html> <head> </head> <body> <?php if(isset($_POST['add'])) { $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } if(! get_magic_quotes_gpc() ) { $tutorial_title = addslashes ($_POST['tutorial_title']); $tutorial_author = addslashes ($_POST['tutorial_author']); } else { $tutorial_title = $_POST['tutorial_title']; $tutorial_author = $_POST['tutorial_author']; } $submission_date = $_POST['submission_date']; $sql = "INSERT INTO tutorials_tbl ". "(tutorial_title,tutorial_author, submission_date) "."VALUES ". "('$tutorial_title','$tutorial_author','$submission_date')"; mysql_select_db('TUTORIALS'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not enter data: ' . mysql_error()); } echo "Entered data successfully\n"; mysql_close($conn); } else { ?> <form method = "post" action = "<?php $_PHP_SELF ?>"> <table width = "600" border = "0" cellspacing = "1" cellpadding = "2"> <tr> <td width = "250">Tutorial Title</td> <td> <input name = "tutorial_title" type = "text" id = "tutorial_title"> </td> </tr> <tr> <td width = "250">Tutorial Author</td> <td> <input name = "tutorial_author" type = "text" id = "tutorial_author"> </td> </tr> <tr> <td width = "250">Submission Date [ yyyy-mm-dd ]</td> <td> <input name = "submission_date" type = "text" id = "submission_date"> </td> </tr> <tr> <td width = "250"> </td> <td> </td> </tr> <tr> <td width = "250"> </td> <td> <input name = "add" type = "submit" id = "add" value = "Add Tutorial"> </td> </tr> </table> </form> <?php } ?> </body> </html> |
زمانیکه در حال داده ها درج می کنید بهتر است که با استفاده از تابع () get_magic_quotes_gpc تنظیمات جاری magic quote را چک کنید.
اگر تابع فوق مقدار false برگرداند،سپس از تابع () addslashes برای افزودن اسلش قبل از کوتیشن ها استفاده کنید.
مباحث گفته شده در بخش های قبلی از جمله روش های ایجاد دیتابیس ، جداول و فیلدهای آن در MySQL برای این انجام می شود تا زمینه برای درج داده ها در دیتابیس فراهم شود، به همین خاطر در این بخش به بررسی طرز کار با دستور INSERT INTO در MySQL برای درج داده ها پرداختیم.