我有以下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());
}
}
&GT;
答案 0 :(得分:1)
我认为你真正想要的是:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
你可以通过PHP调用,但除非你有特殊原因不能使用它,否则这样会好很多。
答案 1 :(得分:0)
当然,你可以执行如下命令:
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);
?>