我有下面的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/