Mysql-insert-query

提供:Dev Guides
移動先:案内検索

MySQL-クエリの挿入

MySQLテーブルにデータを挿入するには、SQL INSERT INTO コマンドを使用する必要があります。 mysql>プロンプトを使用するか、PHPなどのスクリプトを使用して、MySQLテーブルにデータを挿入できます。

構文

MySQLテーブルにデータを挿入するINSERT INTOコマンドの一般的なSQL構文は次のとおりです-

INSERT INTO table_name ( field1, field2,...fieldN )
   VALUES
   ( value1, value2,...valueN );

文字列データ型を挿入するには、すべての値を二重引用符または一重引用符で囲む必要があります。 たとえば、 "value"

コマンドプロンプトからのデータの挿入

コマンドプロンプトからデータを挿入するには、SQL INSERT INTOコマンドを使用して、MySQLテーブルtutorials_tblにデータを挿入します。

次の例では、 tutorials_tbl テーブルに3つのレコードが作成されます-

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キーを押しながらMySQLプロンプトによって自動的に作成されます。

上記の例では、テーブルの作成時にこのフィールドにAUTO_INCREMENTオプションを指定したため、tutorial_idを提供していません。 したがって、MySQLはこれらのIDを自動的に挿入します。 ここで、* NOW()*はMySQL関数であり、現在の日付と時刻を返します。

PHPスクリプトを使用したデータの挿入

同じSQL INSERT INTOコマンドをPHP関数* mysql_query()*に使用して、MySQLテーブルにデータを挿入できます。

この例では、ユーザーから3つのパラメーターを取得し、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()を使用して、マジッククォートの現在の構成が設定されているかどうかを確認することをお勧めします。 この関数がfalseを返す場合、関数 addslashes()*を使用して、引用符の前にスラッシュを追加します。

入力したデータが正しいかどうかを確認するために多くの検証を配置し、適切なアクションを実行できます。