Я тоже недавно искал способ для мощных пользователей массовой загрузки. Моя первая успешная попытка была переменной, поэтому проверьте мое сопоставление. Это пробное завершение было завершено без интерфейса, поэтому вам нужно будет создать форму для загрузки пользователями в ваше ведро. Мой ответ предполагает знакомство с Google Storage.
<?php
$databasehost = ":/cloudsql/something:here"; //Name of your CLOUD SQL INSTANCE ID
$databasename = "db";
$databaseusername ="insert_usr";
$databasepassword = "pwd";
$csv = "gs://APPID.appspot.com/csv_uploads/bulk.csv"; //APPID is the specific name of your app, followed by other bucket(s), if any, and the filename.csv
$column0 = ''; //insert the name of your columns as appeared in MySQL
$column1 = '';
$column2 = '';
$column3 = '';
$column4 = '';
$column5 = '';
$column6 = '';
$column7 = '';
$column8 = '';
$column9 = '';
$column10 = '';
$column11 = '';
$con = @mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error()); //Don't remember why I added '@' might be error
@mysql_select_db($databasename) or die(mysql_error());
$csv_file = $csv; // Name of your CSV file
$csvfile = fopen($csv_file, 'r');
$theData = fgets($csvfile);
$i = 0;
while (!feof($csvfile)) {
$csv_data[] = fgets($csvfile);
$csv_array = explode(",", $csv_data[$i]);
$insert_csv = array();
$insert_csv[$column0] = $csv_array[0]; //array[#] correspondes to columns in order
$insert_csv[$column1] = $csv_array[1];
$insert_csv[$column2] = $csv_array[2];
$insert_csv[$column3] = $csv_array[3];
$insert_csv[$column4] = $csv_array[4];
$insert_csv[$column5] = $csv_array[5];
$insert_csv[$column6] = $csv_array[6];
$insert_csv[$column7] = $csv_array[7];
$insert_csv[$column8] = $csv_array[8];
$insert_csv[$column9] = $csv_array[9];
$insert_csv[$column10] = $csv_array[10];
$insert_csv[$column11] = $csv_array[11];
$query = "
INSERT INTO TABLENAME(".$column1.",".$column1.",".$column2.",".$column3.",".$column4.",".$column5.",".$column6.",".$column7.",".$column7.",".$column9.",".$column10.",".$column11.",)
VALUES('".$insert_csv[$column0]."','".$insert_csv[$column1]."','".$insert_csv[$column2]."','".$insert_csv[$column3]."','".$insert_csv[$column4]."','".$insert_csv[$column5]."','".$insert_csv[$column6]."','".$insert_csv[$column7]."','".$insert_csv[$column8]."','".$insert_csv[$column9]."','".$insert_csv[$column10]."','".$insert_csv[$column11]."')";
$n=mysql_query($query, $con);
$i++;
}
fclose($csvfile);
echo "File data successfully imported to database!!";
mysql_close($con);
?>
В моем процессе, строки со специальными символами (одиночные и двойные кавычки и переносы, что я могу вспомнить) не импортируют поэтому обратите внимание на ваш ROW_COUNT().
Вы заглянули в этот ответ? http://stackoverflow.com/questions/13814775/google-cloud-sql-alternative-to-load-data-infile – Mario
Он не решает проблему. Я обновил свой пост с более подробной информацией. – Guy
Вы можете создать модуль GAE, который берет эти CSV-файлы и преобразует их для импорта операторов SQL, а другой модуль будет загружать их в экземпляры Cloud SQL. Все это должно выполняться асинхронно. Как вы думаете, почему другая публикация не связана? Я вижу отношения. – Mario