微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 通过CSV将数据导入Google Cloud SQL

Google Cloud sql限制在sql语句中使用LOAD DATA INFILE.

我正在尝试制作一项功能,允许用户批量上传用户数据到我的网络应用程序,这样他们就不必逐个进行每个条目.

如何在GAE PHP和Cloud sql的限制下完成此任务?

更新:我的应用程序的用户可以管理学生列表.我希望我的用户能够提交CSV文件并将其输入到他们的学生数据库中.我不能使用同步或MysqL工作台等.它必须在Web应用程序中完成.

感谢您的输入!

解决方法:

我最近也在寻找高级用户批量上传方法.我的第一次成功尝试是变量特定的,所以检查我的映射此试验在没有前端的情况下完成,因此您需要构建一个表单供用户上传到您的存储桶.我的回答是假设您熟悉Google存储空间.

<?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().

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐