用PHP把文本数据导入到MySQL数据库中


把用制表符分隔的文本导入到mysql数据库中。

把用制表符分隔的文本导入到mysql数据库中。

header("Content-type:text/html;charset=utf-8"); //强制页面以utf-8编码显示,跟前面要导入的文件的编码要一致。   

$dbServer = "mysql";
$dbHostname = "localhost";
$dbUsername = "你的用户名";
$dbPassword = "密码";
$dbName = "数据库名";

$conn = mysql_connect($dbHostname, $dbUsername, $dbPassword)
		or die("无法建立连接: " . mysql_error()); //连接数据库. 
mysql_select_db( $dbName ) or die ( "打开数据库失败: ".mysql_error() );
mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=utf8;");


$file=@fopen("1.txt","r") or die("打开文件失败"); // 以只读方式打开1.txt文件。   

//下面循环读取每一行。   

while(!feof($file)){   

        $val=fgets($file);    

       //下面一步很关键,用explode()将每一行转换为数组来存储每个字段的值。    

     $values=explode("\t",trim($val));  //注意用来分割的是制表符”\t”,而不是空格” ” ,自己也可以输出来测试一下。   

$values[0]=substr($values[0], -6);  // 取后面6个字符
$values[1]=trim($values[1]);    // 去空格

$t1=time();
$s1=floor($values[2]);  //  把小数点后面的去掉

echo $values[0]."-".$values[1]."+:".$values[2]." ||"; //显示看看

$result = mysql_query("select * from tab1 where aaa=$values[0]");
if(mysql_num_rows($result))
	{$sql="update bqstock_items set section=$s1 where aaa=$values[0]";
		if (is_numeric($values[2])) 
			{mysql_query($sql);	echo("记录存在,更新成功<br>");}
		else
			{echo("记录存在,但导入的数据不是数值。<br>");}

	}	
else
	{ //如果不存在,则插入数据
	$sql="INSERT INTO `tab1` ( `title`,  `author`) VALUES
('$values[1]', '$values[0]')";
		mysql_query($sql);
	echo("记录不存在,插入数据。<br>"); 
	}

}   

fclose($file);   
mysql_close( $conn );

  

 相关内容