sql >> データベース >  >> RDS >> Mysql

複数のフィールドから多次元配列を使用してデータを挿入します

    更新

    (うわー、それは難しいことです):HTMLフォームのすべての入力フィールドを配列として定義しています。これらの[]を削除することができます 配列にするか、name=insp[]を使用できます inspで -チェックボックス。次に、var_dump($_POST)を使用して送信を出力します 配列を解析する方法がわかります。

    または、ネストされた配列を作成します。このようなものが役立ちます:

    while($row = mysqli_fetch_assoc($result)) {
    
        extract($row);
    
        echo "<tr>\n
        <td><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][id]' /></td>\n
            <td><center>{$scaffreq_id}</center></td>\n
            <td><center>{$level} m</center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][a]' /></center></td>\n            
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][b]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][c]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][d]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][e]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][f]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][g]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][h]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][i]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][j]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][k]' /></center></td>\n
            <td><center><input type='checkbox' checked='checked' name='items[{$scaffreq_id}][insp][l]' /></center></td>\n
            <td><center><p><input type='text' name='items[{$scaffreq_id}][reason]' maxlength='255' size='45' value='Reason{$insp_reason}'></p></center></td>\n
            </tr>\n";
    }
    

    HTMLフォームコードを見ずに手助けするのは簡単ではありません。しかし、私には思えますが、$ID ほとんどの場合、配列ではありません。したがって、foreach($ID as ...)を使用します よくない。代わりに、次のように文字列を作成します:

    $query = "INSERT INTO `inspect` (`ID`,`a`,`b`,`c`,`d`,`e`,`f`,`g`) VALUES ";
    $query .= "({$ID}, {$a}, {$b}, {$c}, {$d}, {$e}, {$f}, {$g})";
    

    警告:
    コードは安全ではなく、SQLインジェクションに対して脆弱であることに注意してください(このSOQ&A )。 PDOプリペアドステートメント を使用します mysql()の代わりに 関数!




    1. プロパティ値の設定中にエラーが発生しました。ネストされた例外はorg.springframework.beans.NotWritablePropertyExceptionです:

    2. 複数の行を挿入するときにONDUPLICATEKEY UPDATEを使用してMySqlのフィールドをインクリメントするにはどうすればよいですか?

    3. mysqlはどのような種類のハッシュを使用しますか?

    4. CBO統計ホワイトペーパー