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

配列とそのキーをデータベースに保存する効率的な方法

    配列からSQLクエリを作成する場合は、次のことが役立つ場合があります。

    // Sample array
    $array = array(
                 'key1' => 'value1',
                 'key2' => 'value2'
                 ...
                 'key10' => 'value10'
             );
    
    // Get and escape the keys
    $keys = array_map('mysql_real_escape_string', array_keys($array));
    // Escape the values
    $array = array_map('mysql_real_escape_string', $array);
    // Build query
    $query = "INSERT INTO table(`".implode('`, `', $keys)."`) VALUES('".implode("', '", $array)."')";
    
    mysql_query($query);
    

    この場合、クエリは次のようになります。

    INSERT INTO
        table(`key1`, `key2` ... `key10`)
    VALUES
        ('value1', 'value2' ... 'value10')
    

    多次元配列(配列の配列)がある場合は、次のようにクエリを作成できます。

    // Sample multidimensional array
    $array = array(
                 array('key1' => 'value1', 'key2' => 'value2'),
                 array('key1' => 'value3', 'key2' => 'value4'),
                 array('key1' => 'value5', 'key2' => 'value6')
             );
    
    // Get and escape the keys
    $keys = array_map('mysql_real_escape_string', array_keys(current($array)));
    // Array to store values for the query
    $values = array();
    // Loop every row and insert into $values array
    foreach($array as $row) {
        // Escape all items
        array_map('mysql_real_escape_string', $row);
        $values[] = "('".implode("', '", $row)."')";
    }
    
    $query = "INSERT INTO table(`".implode('`, `', $keys)."`) VALUES ".implode(', ', $values);
    
    mysql_query($query);
    

    この場合、結果のクエリは次のようになります。

    INSERT INTO
        table(`key1`, `key2`)
    VALUES
        ('value1', 'value2'),
        ('value3', 'value4'),
        ('value5', 'value6')
    

    ここで気にする必要があるのは、データベースに対応する列を作成することだけです。



    1. テーブルが見つからないエラーのトラブルシューティング

    2. Flaskを使用した分離レベル-SQLAlchemy

    3. 明示的なANSIJOINと暗黙的な結合の使用に関するOracleの公式推奨事項はありますか?

    4. phpとmysqlを使用した通知システム