INSERT INTO不写入数据库?

时间:2011-04-14 16:02:05

标签: php mysql

我正在尝试将信息写入数据库表,但它根本不工作。我已经搞乱了好几个小时。也许如果有人看到代码,他们会看到我错过的东西。

我的逻辑是它连接到数据库服务器,打开数据库mydb,转到表mod,然后写入id,fname和lname,然后关闭连接。

另外,id设置为auto_increment。从我可以告诉它应该工作,但事实并非如此。

$con = mysql_connect("localhost","user","pass");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db('mydb', $con);

//assign
$query = "INSERT INTO 'mod' (id, fname, lname) VALUES ('', 'bill', 'smith')";
if (!$query){ 
dir ("Unable to create the record:" . mysql_error()); 
exit; 
}
mysql_query($query);
mysql_close($con);

5 个答案:

答案 0 :(得分:1)

'mod'周围应该没有引号

//编辑:
此外,if (!query)部分在那一刻并不真正有用,因为它正在检查字符串,而不是结果。您应该检查mysql_query()的结果,如果失败,则应输出错误消息。

答案 1 :(得分:1)

将您的查询更改为:

$query = "INSERT INTO mod (fname, lname) VALUES ('bill', 'smith')";

您的自动增量ID将由数据库自动添加。

<强>更新

您的错误代码应如下所示:

$query = "INSERT INTO mod (fname, lname) VALUES ('bill', 'smith')";
$result = mysql_query($query);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

答案 2 :(得分:0)

您实际上必须调用mysql_query来执行查询(以查看mysql_error)。

答案 3 :(得分:0)

您也可以尝试:

$query = "INSERT INTO mod SET fname='bill', lname='smith'";

id列会神奇地自动增量。

答案 4 :(得分:0)

你在引用表名时做错了。它应该是`mod`而不是'mod'。即“[反引言]不是'[单引号]。

第二个错误是你的死亡声明......而不是dir它应该死...

INSERT INTO `mod` (id, fname, lname) VALUES ('', 'bill', 'smith');

接下来,您还可以跳过为自动提取的id字段插入值

所以它可以是

INSERT INTO `mod` (fname, lname) VALUES ('bill', 'smith');