需要有关将数据导入MySQL表的帮助

时间:2012-04-03 14:08:26

标签: mysql sql

我在将数据写入数据库表时遇到问题。除了下面显示的最后一个mysql_query()语句外,一切正常:

   mysql_query("insert into $TableName (Topic, Date, Phone_Number, Original_Description, Alt_Description, Website_Link)
   values ('. implode(',', $queries)') or die(mysql_error()");

我不是一名MySQL程序员,并且一直在努力让这个工作得很好。以下代码是根据其他论坛通过网络搜索的建议汇总而成的。

// --------------- Save Data to Database ---------------------

// Database Authentication-user, password
   $TableName = 'User_Data';
   $dbh = mysql_connect ("localhost", "username", "password")
   or die ('Cannot connect to the database because: ' . mysql_error());

   mysql_select_db ("database");

// Creates Database Table if it does not exist
   if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$TableName."'")) != 1) {
    mysql_query("CREATE TABLE $TableName(
    id INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (id),
    Topic varchar(300) NOT NULL default '',
    Date  varchar(100) NOT NULL default '',
    Phone_Number varchar(100) NOT NULL default '',
    Original_Description varchar(2000) NOT NULL default '',
    Alt_Description varchar(2000) NOT NULL default '',
    Website_Link  varchar(2000) NOT NULL default '') ") or die(mysql_error());
   }

// Write to MySQL Database
   $queries = array(); 
   for($i=0; $i<count($current_topic_array); $i++) {
    $queries[] = '('.$current_topic_array[$i].', '.$date_array[$i].', '.$phone_array[$i].', '.$original_description_array[$i].', '.$alt_description_array[$i].', '.$website_link_array[$i].')'; 
   }
   mysql_query("insert into $TableName (Topic, Date, Phone_Number, Original_Description, Alt_Description, Website_Link)
   values ('. implode(',', $queries)') or die(mysql_error()");

创建数据库表但没有数据写入User_Data表。出于测试目的,我将echo $queries[$i];输入for($i=0; $i<count($current_topic_array); $i++)循环以查看数据是否存在,并且确实存在。回声的结果是:

  

(经典汽车,05-02-2012,777-555-1212,2012年5月春季举行的经典车展,2012年5月经典车型,http://website.com/post/864.html)

     

(经典汽车,2012年7月13日,777-555-5412,2012年7月夏季举行的经典车展,2012年7月的经典车型,http://website.com/post/865.html)

等...

我还尝试将mysql_query()语句替换为以下三种变体,以便将数据输入表中,但这三种方法都不起作用:

$query = "insert into (Topic, Date, Phone_Number, Original_Description, Alt_Description, Website_Link) values " . implode(", ", $queries);

$query = "insert into User_Data(Topic, Date, Phone_Number, Original_Description, Alt_Description, Website_Link) values " . implode(", ", $queries);

$query = mysql_query("insert into $TableName (Topic, Date, Phone_Number, Original_Description, Alt_Description, Website_Link) 
values ('. implode(',', $queries)') or die(mysql_error()");

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

重读后对我原来答案的主要修改

你的专栏:

mysql_query("insert into $TableName (Topic, Date, Phone_Number, Original_Description,   
   Alt_Description, Website_Link)
   values ('. implode(',', $queries)') or die(mysql_error()"); 

看起来不对,可能会解释为什么你没有收到错误。它应该是:

mysql_query("insert into $TableName (Topic, Date, Phone_Number, Original_Description, 
   Alt_Description, Website_Link)
   values (". implode(',', $queries) . ")") or die(mysql_error());

一般来说,如果您将结构更像这样,我还会争辩说您会发现自己处于更好的调试位置:

$query = "insert into $TableName (Topic, Date, Phone_Number, Original_Description, 
       Alt_Description, Website_Link)
       values (". implode(',', $queries) . ")";
mysql_query($query) or die(mysql_error());

**在上述代码段的第一行末尾缺少分号。 ** 然后,您可以选择吐出您使用的确切查询。