我有下面的PHP代码,允许我逐行从文本文件中读入并写入MySQL数据库。文本文件由13个值组成,每行用空格隔开。我已经在SQL中分别创建了这个表(包含所有需要的相关字段:Time、WIMU_ID、Ax、Ay等),然后运行下面的PHP将这些值插入到表中。我的问题是:是否有任何方法可以在下面的PHP代码中创建表,而不必先在SQL中创建表?感谢任何帮助或建议。
休。

<?php

    $connection  = mysql_connect('localhost','root','bonzo123');
    mysql_query('create database gameDB');
    mysql_select_db('gameDB');

    $wx = array_map('trim',file("Thu-Apr-01-09_41_01-2010.txt_calibrated_120Hz.txt"));
    $newwx = array();
    foreach($wx as $i => $line)
    {
            if ($i > 1)
            {
                    $tmp = array_filter(explode(' ',$line));
                    $q = "insert into test1 (Time, WIMU_ID, Ax, Ay, Az, Gx, Gy, Gz, Mx, My, Mz, Ax70, Ay37) values ('" . implode("','",$tmp) . "')";
                    $rw = mysql_query($q) or die("Problem with the query: $q<br>" . mysql_error());
            }
    }

?>

最佳答案

当然,您可以执行如下命令:

CREATE TABLE IF NOT EXISTS `test1`  (
...
);

若要获取表创建查询,请在已在SQL中创建该查询后发出以下命令:
SHOW CREATE TABLE `test1`;

编辑:
注意,您不必直接在SQL中创建表,但是既然已经有了,那么发布上面的命令将确切地给出您需要在PHP中包含的内容,以使它在不存在表的情况下在将来的安装中创建表。
还要注意,正如@Jeremy建议的那样,您不必“滚动自己的”代码就可以将数据文件导入到表中。创建表后,可以使用LOAD DATA INFILE...填充表。
编辑2:
下面是一个基于您的评论的示例:
<?php
// Connect to the database server
$connection = mysql_connect('localhost', 'root', 'bonzo123');
if (!$connection)
    die('Could not connect: ' . mysql_error());

// Create database gameDB
if (mysql_query('create database gameDB', $connection)) {
    echo "Database gameDB created successfully.\n";
} else {
    echo 'Error creating database: ' . mysql_error() . "\n:";
}

// select which database to use
mysql_select_db('gameDB', $connection);

// create table test1 if it doesn't already exist
mysql_query('CREATE TABLE IF NOT EXISTS test1 (
    v1 varchar(100),
    v2 varchar(100),
    v3 varchar(100),
    v4 varchar(100),
    v5 varchar(100),
    v6 varchar(100),
    v7 varchar(100),
    v8 varchar(100),
    v9 varchar(100),
    v10 varchar(100)', $connection);

?>

关于php - 使用PHP从文本文件读取,添加到MySQL DB问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7043849/

10-09 17:52
查看更多