2017-08-25 7 views
0

私はテーブルを作成し、そこに位置データを挿入する必要があるwordpressプラグインを作成しています。そのINSERTクエリには50000を超える場所がありますので、別のファイル.sqlにあります。wordpressプラグインの.sqlファイルからデータを挿入してください

プラグインをアクティブにするときに実行する必要があります。

function locations_install() 
{ 
    global $wpdb; 
    global $locations_db_version; 

    $table_name = $wpdb->prefix . 'setfordslocations'; 

    $charset_collate = $wpdb->get_charset_collate(); 

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
      id int(11) NOT NULL AUTO_INCREMENT, 
      town varchar(2000) CHARACTER SET utf8 DEFAULT NULL, 
      county varchar(225) NOT NULL, 
      country varchar(225) NOT NULL, 
      latitude decimal(10,5) DEFAULT NULL, 
      longitude decimal(10,5) DEFAULT NULL, 
      postcode varchar(10) NOT NULL, 
      type varchar(255) NOT NULL, 
      PRIMARY KEY (id) 
     ) $charset_collate;"; 

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
    dbDelta($sql); 

    add_option('locations_db_version', $locations_db_version); 
} 

の下には、どのように私は .sqlファイルを実行し、データを挿入する必要がありますように私は、テーブルを作成していますか?

+1

プラグインに50,000行を自動的に挿入しようとしていますか? – GrumpyCrouton

+0

はい。これはそれらの場所のデータを必要とするカスタムプラグインです – Miuranga

+1

これは[wordpress.se]の質問です。 – msanford

答えて

0

それを行うためのシンプルかつ効率的な方法:

exec('mysql -u USERNAME -pPASSWORD database_name < /path/to/file.sql') 

それは、あなたがファイルを開いて、あなたがEOFに達するまで、ファイルを反復処理ラインで挿入行を実行することができますオプションがない場合。

関連する問題