首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不会在txt上启动到mysql数据库的新行。

不会在txt上启动到mysql数据库的新行。
EN

Stack Overflow用户
提问于 2011-11-04 22:21:28
回答 1查看 378关注 0票数 0

我对php和mysql都很陌生。我有一个带有表的txt文件,其中的每一列由一个分号column1;column2分隔,每一行都在txt文件的新行上。

列1-行1;列2-行1

列1-行2;列2-行2

我正在尝试使用phpmyadmin将txt文件上传到mysql表。第一行进得很好,但第二行不行。我试过\r\n,也试过\r\n,但这些都不起作用。这些只会将txt文件上的第二个结果拖到第一个mysql行的另一行(而不是行)。因此,所有内容都进入mysql表的第一行。

我也尝试过在最后一列之后加上一个分号( column1;column2; ),但是所有这些都是在第一行之后停止的。

我想我是问如何格式化txt文件,使txt文件上的每一行在sql表中开始一个新行。或者我需要先在phpmyadmin上设置一些东西。这可能非常容易,但同样,我对php和sql都非常陌生。非常感谢。

好吧,这是我最初的问题。我有一个数据库,在这个数据库中,我有一个有两个列'a‘和'b’的表。我还创建了一个包含50行数据的txt文件。在txt文件中,我用分号a;b分隔了'a‘和'b’,然后我点击键盘上的返回键来生成下一行数据。当我使用SQL或PHP脚本上传txt文件,然后浏览我的数据库上的表时,它只从txt文件中输入了第一行,在第一行'b‘之后(在我的数据库表上),它已经开始在新行上输入第二行数据(从我的txt文件),但仍然是同一行。我希望将txt文件中的第二个放在数据库表的新行中。也许我做不到,但这就是我的问题所在。

这是我正在使用的代码:

代码语言:javascript
复制
<?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文件看起来如下:

代码语言:javascript
复制
a;b
c;d
e;f
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-04 22:29:45

你试过这个吗?

代码语言:javascript
复制
LOAD DATA INFILE 'C:\\yourfile.txt'
INTO TABLE yourtable
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n'

然后单击submit (go)按钮。

编辑:如果您使用PHP路径,请尝试如下:

代码语言:javascript
复制
<?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);

假设每个“行”都由文本文件中的换行符分隔,它就能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8016377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档