Чтение из текстового файла с использованием PHP, добавление в базу данных MySQL. - PullRequest
1 голос
/ 12 августа 2011

У меня есть следующий код PHP, который позволяет мне читать текстовые файлы построчно и записывать в базу данных MySQL.Текстовый файл состоит из 13 значений, разделенных пробелом в каждой строке.Я создал таблицу отдельно в SQL (со всеми необходимыми необходимыми полями: Time, WIMU_ID, Axe, 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());
            }
    }

?>

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Я думаю, что вы действительно хотите это:

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

, который вы можете вызывать через PHP, но это было бы намного лучше, если у вас нет особых причин, его нельзя использовать.

0 голосов
/ 12 августа 2011

Конечно, вы можете выполнить команду вроде:

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);

?>
...