کوئری INSERT در MySQL — راهنمای جامع

۵۰۴ بازدید
آخرین به‌روزرسانی: ۲۲ شهریور ۱۴۰۲
زمان مطالعه: ۳ دقیقه
کوئری INSERT در MySQL — راهنمای جامع

برای درج داده‌ها در جدول‌های MySQL باید از دستور INSERT INTO استفاده کنید. می‌توان داده‌ها با استفاده از اعلان <mysql یا از طریق اسکریپت PHP در جدول‌های MySQL وارد کرد.

در ادامه ساختار متداول SQL برای دستور INSERT INTO جهت درج داده‌ها در جدول‌های MySQL ارائه شده است:

INSERT INTO table_name (field1, field2,...fieldN)

VALUES

(value1, value2,...valueN);

برای درج انواع داده رشته‌ای لازم است که همه مقادیر درون گیومه‌های تکی (‘) یا جفتی (“) قرار گیرند.

درج داده‌ها از طریق اعلان فرمان

برای درج داده‌ها در جدول MySQL از طریق اعلان فرمان از دستور INSERT INTO استفاده می‌شود.

مثال

در مثال زیر 3 رکورد در جدول tutorials_tbl ایجاد می‌شود:

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 نیستند. از این نشانه‌ها استفاده کرده‌ایم تا نشان دهیم که این‌ها خط جدید هستند و زمانی که بدون قرار دادن نقطه‌ویرگول، در انتهای هر خط از دستور MySQL اینتر بزنید، MySQL به طور خودکار آن‌ها را ایجاد می‌کند.

در مثال فوق مقدار tutorial_id را تعیین نکرده‌ایم، زیرا در زمان ایجاد جدول گزینه AUTO_INCREMENT را برای این فیلد تعیین کرده بودیم. از این رو MySQL خودش ID های مربوطه را به صورت خودکار درج می‌کند. در دستور فوق از ()NOW به عنوان یک تابع MySQL برای درج تاریخ و زمان فعلی استفاده می‌شود.

درج داده‌ها با استفاده از اسکریپت PHP

شما می‌توانید از همین دستور INSERT INTO در تابع ()mysql_query در PHP برای درج داده‌ها در یک جدول MySQL استفاده کنید.

مثال

در مثال زیر سه پارامتر از کاربر گرفته می‌شود و آن‌ها را در جدول MySQL وارد می‌کند:

<html>

   <head>
      <title>Add New Record in MySQL Database</title>
   </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 استفاده کنیم تا ببینیم آیا در پیکربندی کنونی امکان استفاده از گیومه جادویی وجود دارد یا نه. اگر این تابع مقدار flase بازگرداند، در این صورت می‌توانیم از تابع ()addslashes برای افزودن / پیش از گیومه‌ها استفاده کنیم.

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

اگر این نوشته مورد توجه شما قرارگرفته است، پیشنهاد می‌کنیم موارد زیر را نیز ملاحظه کنید:

==

بر اساس رای ۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
tutorialspoint
نظر شما چیست؟

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