[英]populating database from csv file using php
如何使用PHP代码从csv文件中的信息填充数据库? 我需要练习使用php进行数据库调用,但此刻,我只能访问的是此csv文件...
设计注意事项:您可能不想使用诸如file_get_contents之类的功能一次将整个文件加载到内存中。 对于大文件,这将耗尽您的所有可用内存并引起问题。 而是像亚当建议的那样做,并且一次阅读一行。
//Here's how you would start your database connection
mysql_connect($serverName, $username, $password);
mysql_select_db('yourDBName');
//open the file as read-only
$file = fopen("file.csv", "r");
// lineLength is unlimited when set to 0
// comma delimited
while($data = fgetcsv($file, $lineLength = 0, $delimiter = ",")) {
//You should sanitize your inputs first, using a function like addslashes
$success = mysql_query("INSERT INTO fileTable VALUES(".$data[0].",".$data[1].")");
if(!$success) {
throw new Exception('failed to insert!');
}
}
只需通过phpmyadmin即可: http : //vegdave.wordpress.com/2007/05/19/import-a-csv-file-to-mysql-via-phpmyadmin/
使用内置的PHP函数读取CSV并写入输出文件。 然后,您可以将SQL导入数据库。 这适用于任何类型的数据库。
不要忘记转义您正在使用的任何字符串。 在此示例中,我将sqlite_escape_string()用于此目的。
$fd = fopen("mydata.csv", "r");
$fdout = fopen("importscript.sql","w");
while(!feof($fd))
{
$line = fgetcsv($fd, 1024); // Read a line of CSV
fwrite($fdout,'INSERT INTO mytable (id,name)'
.'VALUES ('.intval($line[0]).",'".sqlite_escape_string($line[1])."');\r\n";
}
fclose($fdout);
fclose($fd);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.