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

動的なphpインサートをmysql関数に作成しますか?

    これは、同様のことを行うために使用するものです(制御できないテーブルに挿入し、APIアクセスはありません)

    DESCRIBEクエリを使用すると、存在する列のみが挿入されます。

    $db = new DB();
    $sql = 'DESCRIBE `table`';
    $result = $db->query($sql);
    $row = array();
    $query = array();
    
    while ($row = $result->fetchRow())
    {
        if (array_key_exists($row['field'], $form_data))
            if (is_null($form_data[$row['field']]))
                $query[$row['field']] = 'NULL';
            else
                $query[$row['field']] = $db->quote($form_data[$row['field']]);
    }
    
    $keys = array_keys($query);
    
    foreach ($keys as &$key)
        $key = $db->quoteIdentifier($key);
    
    unset($key);
    
    $vals = array_values($query);
    
    $sql = 'INSERT INTO `table` '
         . '(' . implode(', ', $keys) . ') '
         . 'VALUES(' . implode(', ', $vals) . ')';
    

    編集:DB()はMDB2のラッパーです。

    そしてもちろん、これにより、行全体を埋めることができます。列を制限している場合(自動インクリメントIDなど)、フォームデータからそれらをフィルタリングする必要があります...




    1. MySQLで、このクエリを高速化するためにインデックスを作成するにはどうすればよいですか?

    2. SQL Server Management Studio(SSMS)で行番号を追加する方法-SQL Server/TSQLチュートリアルパート11

    3. テーブルまたは列がデータベースに存在するかどうかを確認するにはどうすればよいですか?

    4. データベースからjsp(私はサーブレットをマッピングしています)に複数の画像を表示したいので、jspmではimgタグのsrcに表示します