我在将数据写入数据库表时遇到问题。除了下面显示的最后一个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()");
任何帮助将不胜感激。
答案 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());
**在上述代码段的第一行末尾缺少分号。 ** 然后,您可以选择吐出您使用的确切查询。