Импорт данных в Google Cloud SQL через CSV

Google Cloud SQL ограничивает использование LOAD DATA INFILE в операторах SQL.

Я пытаюсь сделать функцию, которая позволит пользователям загружать пользовательские данные в мое веб-приложение, поэтому им не нужно делать каждую запись по одному.

Как я мог бы сделать это в рамках ограничений GAE PHP и Cloud SQL ?

Обновление. Пользователи моего приложения могут управлять списком студентов. Я хочу, чтобы мои пользователи могли отправлять CSV-файл и вводить его в свою базу данных. Я не могу использовать sync или MySQL workbench и т. Д. Это нужно сделать в веб-приложении.

Спасибо за ваш вклад!

Я тоже недавно искал способ для мощных пользователей массовой загрузки. Моя первая успешная попытка была переменной, поэтому проверьте мое сопоставление. Это пробное завершение было завершено без интерфейса, поэтому вам нужно будет создать форму для загрузки пользователями в ваше ведро. Мой ответ предполагает знакомство с 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 ().

Единственный способ, которым я могу это сделать, – создать PHP-скрипт для чтения файла и вставить его в базу данных с помощью операторов SQL INSERT , нормального способа, с помощью которого вы вставляете данные в экземпляр cloudSQL.