2013-05-04 152 views
0

我一直在这工作几个小时,似乎无法得到这几行代码的工作。这是我第一次与MySQL合作,请耐心等待。简单的MySQL代码没有插入数据到数据库?

<?php 

$con = mysql_connect("localhost","usernamewitheld","passwordwithheld"); 
if (!$con){die('Could not connect: ' . mysql_error());} 
mysql_select_db("splashpage"); 
mysql_query("INSERT INTO 'email' ('emailaddress') VALUES ('$_POST[email]');", $con); 
mysql_close($con); 

?> 

该代码在没有任何apache错误的情况下执行,但数据库不受影响。有任何想法吗?

编辑:表结构如下:

Field Type Null Key Default Extra 
emailaddress text NO MUL NULL  
timesubmitted timestamp NO  CURRENT_TIMESTAMP  
+0

你能请张贴的表结构呢? – Satya 2013-05-04 06:06:36

+2

[请勿在新代码中使用'mysql_ *'函数](http://stackoverflow.com/q/12859942/1190388)。他们不再被维护,并[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到红色框?改为了解准备好的语句,然后使用[tag:PDO]或[tag:MySQLi]。 – hjpotter92 2013-05-04 06:08:55

回答

2

删除分号,使用bacticks而不是查询中的单引号。

mysql_query("INSERT INTO `email` (`emailaddress`) VALUES ('$_POST[email]')", $con) 
or  
die(mysql_error()); 

注:Please, don't use mysql_* functions in new code。他们不再维护and are officially deprecated。请参阅red box?请改为了解prepared statements,并使用PDOMySQLi - this article将帮助您决定哪个。如果您选择PDO,here is a good tutorial

+0

谢谢!这解决了它。我将致力于实施一个未弃用的解决方案。 – 2013-05-04 06:24:09

+0

@AustinBerke - 很高兴帮助你!快乐编码:) – Rikesh 2013-05-04 06:25:20

0

使用反引号`在这里列名不'

mysql_query("INSERT INTO 'email' ('emailaddress') VALUES ('$_POST[email]');", $con); 

应该是

mysql_query("INSERT INTO `email` (`emailaddress`) VALUES ('$_POST[email]')", $con); 
0

使用此。

<?php 
mysql_query("INSERT INTO email (emailaddress) VALUES ('".$_POST[email]."')", $con); 
mysql_close($con); 
?> 
0

尝试

<?php 

$con = mysql_connect("localhost","usernamewitheld","passwordwithheld"); 
if (!$con){die('Could not connect: ' . mysql_error());} 
mysql_select_db("splashpage",$con); 
mysql_query("INSERT INTO 'email' ('emailaddress') VALUES ('$_POST[email]');", $con); 
echo mysql_errno($con) . ": " . mysql_error($con) . "\n"; 
mysql_close($con); 

?>