プリペアドステートメントを使用して空白行を挿入せずにMySQLに複数の行を挿入する方法

user6919281

PDOプリペアドステートメントを使用して単一のクエリで複数の行を挿入したいのですが、空白行を挿入したくありません。

実際、以下のHTMLで確認できるフォームに4つの行があり、1つの行だけを入力すると、3つの空白行も挿入されますが、空白行は挿入されません。

 <form method="post">
    <table>
      <tr>
        <td><input type="text" name="col1"></td>
        <td><input type="text" name="col2"></td>
      </tr>
      <tr>
        <td><input type="text" name="col1"></td>
        <td><input type="text" name="col2"></td>
      </tr>
      <tr>
        <td><input type="text" name="col1"></td>
        <td><input type="text" name="col2"></td>
      </tr>
      <tr>
        <td><input type="text" name="col1"></td>
        <td><input type="text" name="col2"></td>
      </tr>
    </table>
  </form>

私のコードはこんな感じです

$stmt = $pdo->prepare('INSERT INTO foo VALUES(:col1, :col2)');
foreach($data as $item)
{
    $stmt->bindValue(':col1', $item[0]);
    $stmt->bindValue(':col2', $item[1]);
    $stmt->execute();
}

お願い助けて...

AHジーボン

col1とcol2は複数あるため、配列を使用する必要があります。データベースのクレデンシャルを変更し、テーブル名を変更する必要があります。テスト目的私はテーブル名を使用していますtest

index.php

<?php
    if(isset($_POST['submit'])){
        $dbhost = "localhost";  //Set your hostname
        $dbname = "dbname";     //set your dbname
        $dbusername = "root";   //set your db username
        $dbpassword = "";       //set your db password
        $link = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbusername,$dbpassword);

        for ($i=0; $i <count($_POST['col1']) ; $i++) {
            $rowNum = $i+1;
            if($_POST['col1'][$i]!='' && $_POST['col2'][$i]!=''){
                $statement = $link->prepare("INSERT INTO test(col1, col2) VALUES(:col1, :col2)");
                $res = $statement->execute(array(
                    "col1" => $_POST['col1'][$i],
                    "col2" => $_POST['col2'][$i],
                ));
                if($res)
                    echo "Row no: $rowNum Successfully inserted.<br>";
                else
                    echo "Row no: $rowNum Failed to insert.<br>";
            }else
                echo "Row no: $rowNum single or double field  empty.<br>";
        }
    }
?>

<form method="post">
    <table>
      <tr>
        <td><input type="text" name="col1[]"></td>
        <td><input type="text" name="col2[]"></td>
      </tr>
      <tr>
        <td><input type="text" name="col1[]"></td>
        <td><input type="text" name="col2[]"></td>
      </tr>
      <tr>
        <td><input type="text" name="col1[]"></td>
        <td><input type="text" name="col2[]"></td>
      </tr>
      <tr>
        <td><input type="text" name="col1[]"></td>
        <td><input type="text" name="col2[]"></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" name="submit" value="submit"></td>
      </tr>
    </table>
</form>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プリペアドステートメントを使用してMySqlに(DATE(now))を挿入する

分類Dev

PDOバインドパラメータメソッドを使用して複数行のテキストをmysqlに挿入する方法は?

分類Dev

PDOプリペアドステートメントを使用してMySQLにBIT値を挿入します

分類Dev

mysqliプリペアドステートメントを使用してデータベースの複数の列にデータを挿入します

分類Dev

プリペアドステートメントを使用せずにPDOを介してMySQLに挿入する文字列をエスケープする方法(レガシーアプリ)

分類Dev

複数のテーブルから値を選択して単一のテーブルに挿入するプリペアドステートメント

分類Dev

selectステートメントを使用して挿入を実行し、HQLを使用して複数の行に配置する方法

分類Dev

SQL SERVER Selectステートメントに挿入を使用して複数の行を挿入するにはどうすればよいですか?

分類Dev

inステートメントを使用してSQLに複数の行を挿入します

分類Dev

プリペアドステートメントを使用してテーブルに挿入します

分類Dev

プリペアドステートメントを使用してjsonオブジェクトをmysqlに挿入できない(なしで動作する)

分類Dev

MySQL-selectステートメントを使用して複数の行を挿入するにはどうすればよいですか?

分類Dev

rのdplyrを使用して特定の位置に空白行を挿入する方法

分類Dev

挿入値の配列を使用してプリペアドステートメントを実行しても機能しません

分類Dev

トリガーを使用して SQlite に複数の行を挿入する

分類Dev

sedを含むテキストの前に空白行を挿入します

分類Dev

PostgreSQLのプリペアドステートメントにDEFAULTを挿入する方法

分類Dev

SQL挿入ステートメントをループして複数の行を生成する

分類Dev

Javaを使用してCSVに空白行を挿入する

分類Dev

JSON配列からMySQLに複数の空白行を挿入する

分類Dev

mysqlのJOINステートメントを使用して最後に挿入された行を取得します

分類Dev

ドロップダウンリストから複数のアイテムを選択し、MYSQLに複数の値を挿入する方法

分類Dev

HANA から複数の挿入ステートメントを一度に実行する方法

分類Dev

SELECTステートメントに基づいて複数の行を挿入します

分類Dev

if-elseステートメントを使用して複数のリストに同数の値を挿入する方法は?

分類Dev

プリペアドステートメントPHPを使用して、月の日をデータベースに挿入します

分類Dev

行を挿入しないストアドプロシージャの一部としてステートメントを挿入する

分類Dev

プリペアドステートメントJavaにBig Integerを挿入する方法

分類Dev

重複せずに複数の行を挿入する-MySQL

Related 関連記事

  1. 1

    プリペアドステートメントを使用してMySqlに(DATE(now))を挿入する

  2. 2

    PDOバインドパラメータメソッドを使用して複数行のテキストをmysqlに挿入する方法は?

  3. 3

    PDOプリペアドステートメントを使用してMySQLにBIT値を挿入します

  4. 4

    mysqliプリペアドステートメントを使用してデータベースの複数の列にデータを挿入します

  5. 5

    プリペアドステートメントを使用せずにPDOを介してMySQLに挿入する文字列をエスケープする方法(レガシーアプリ)

  6. 6

    複数のテーブルから値を選択して単一のテーブルに挿入するプリペアドステートメント

  7. 7

    selectステートメントを使用して挿入を実行し、HQLを使用して複数の行に配置する方法

  8. 8

    SQL SERVER Selectステートメントに挿入を使用して複数の行を挿入するにはどうすればよいですか?

  9. 9

    inステートメントを使用してSQLに複数の行を挿入します

  10. 10

    プリペアドステートメントを使用してテーブルに挿入します

  11. 11

    プリペアドステートメントを使用してjsonオブジェクトをmysqlに挿入できない(なしで動作する)

  12. 12

    MySQL-selectステートメントを使用して複数の行を挿入するにはどうすればよいですか?

  13. 13

    rのdplyrを使用して特定の位置に空白行を挿入する方法

  14. 14

    挿入値の配列を使用してプリペアドステートメントを実行しても機能しません

  15. 15

    トリガーを使用して SQlite に複数の行を挿入する

  16. 16

    sedを含むテキストの前に空白行を挿入します

  17. 17

    PostgreSQLのプリペアドステートメントにDEFAULTを挿入する方法

  18. 18

    SQL挿入ステートメントをループして複数の行を生成する

  19. 19

    Javaを使用してCSVに空白行を挿入する

  20. 20

    JSON配列からMySQLに複数の空白行を挿入する

  21. 21

    mysqlのJOINステートメントを使用して最後に挿入された行を取得します

  22. 22

    ドロップダウンリストから複数のアイテムを選択し、MYSQLに複数の値を挿入する方法

  23. 23

    HANA から複数の挿入ステートメントを一度に実行する方法

  24. 24

    SELECTステートメントに基づいて複数の行を挿入します

  25. 25

    if-elseステートメントを使用して複数のリストに同数の値を挿入する方法は?

  26. 26

    プリペアドステートメントPHPを使用して、月の日をデータベースに挿入します

  27. 27

    行を挿入しないストアドプロシージャの一部としてステートメントを挿入する

  28. 28

    プリペアドステートメントJavaにBig Integerを挿入する方法

  29. 29

    重複せずに複数の行を挿入する-MySQL

ホットタグ

アーカイブ