我正在尝试将信息写入数据库表,但它根本不工作。我已经搞乱了好几个小时。也许如果有人看到代码,他们会看到我错过的东西。
我的逻辑是它连接到数据库服务器,打开数据库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);
答案 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');