我对php和mysql都很陌生。我有一个txt文件,上面有一个表,每列由分号column1;column2
分隔,每一行在txt文件中的新行。
column1-row1; column2-row1
column1-row2; column2-row2
我试图使用phpmyadmin将txt文件上传到mysql表。第一行可以放进去,但第二行不行。我试过r
和n
,也试过rn
,但这些都不起作用。它们只会将文本文件上的第二个结果放到第一个mysql行上的另一行(而不是行)。所以所有的东西都放到mysql表的第一行。
我也尝试在最后一列以及column1;column2;
之后放置分号,但所有这些都是在第一行之后停止。
我想我是在问我如何格式化txt文件,使txt文件上的每一行在sql表中开始一个新的行。或者我需要先在phpmyadmin上设置一些东西。这可能非常简单,但是,我对php和sql都很陌生。非常感谢。
好的,这和我最初遇到的问题一样。我有一个数据库,在这个数据库中,我有一个表,有两列a和b。我还创建了一个文本文件,其中包含50行数据。在txt文件中,我用分号a;b分隔了'a'和'b',然后我按下键盘上的回车键来生成下一行数据。当我使用SQL或PHP脚本上传txt文件,然后浏览我的数据库表时,它只从我的txt文件中输入第一行,在第一行(在我的数据库表上)中的"b"之后,它已经开始在新行上输入第二行数据(从我的txt文件中),但仍然是同一行。我想从我的文本文件第二被放置在我的数据库表的新行。也许我不能,但这就是我遇到的问题。
这是我使用的代码:
<?php
$user_name = "username";
$password = "password";
$database = "database";
$server = "server";
$db = mysql_connect($server, $username, $password);
if (!$db) {
die('Could not connect: ' . mysql_error());
}
$fileHandle = fopen('my_text_file.txt', 'rb');
while (!feof($fileHandle)) {
$cols = explode(';', fgets($fileHandle));
$query = sprintf(
'INSERT INTO database_table (field1_name, field2_name) VALUES ("%s", "%s")',
$cols[0], $cols[1]
);
mysql_query($query);
}
fclose($fileHandle);
mysql_close($db);
?>
我的txt文件是这样的:
a;b
c;d
e;f
你试过了吗?:
LOAD DATA INFILE 'C:\yourfile.txt'
INTO TABLE yourtable
FIELDS TERMINATED BY ';'
LINES TERMINATED BY 'rn'
然后点击提交(转)按钮。
编辑:如果你选择PHP路线,试试这个:
<?php
$db = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$db) {
die('Could not connect: ' . mysql_error());
}
$fileHandle = fopen('yourfile.txt', 'rb');
while (!feof($fileHandle)) {
$cols = explode(';', fgets($fileHandle));
$query = sprintf(
'INSERT INTO yourtable (column1, column2) VALUES ("%s", "%s")',
$cols[0], $cols[1]
);
mysql_query($query);
}
fclose($fileHandle);
mysql_close($db);
假设文本文件中的每一行用换行符分隔,它应该可以工作。