我想在表格中插入新行。我希望id能够自动生成并且不会被用户询问。用户只提供标题和文字。我写了这个代码在PHP中:在表格中插入新行和自动识别号码
<?php
$hostname = "localhost";
$database = "mydb";
$username = "myuser";
$password = "mypsw";
$link = mysql_connect($hostname , $username , $password) or
die("Attention! Problem with the connection : " . mysql_error());
if (!$link)
{
die('Could not connect: ' . mysql_error());
}
mysql_query("SET NAMES ‘utf8’",$link);
mysql_select_db("mydb", $link);
$lastid=mysql_insert_id();
$lastid=$lastid+1;
$sql="INSERT INTO announcements VALUES ('$lastid',CURDATE(),'$_POST[title]','$_POST[text]')";
if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}
mysql_close($link);
header("Location: announcement.php");
?>
可悲的是,当我测试它在我的网站,我得到这个错误:
Error: Duplicate entry '0' for key 'PRIMARY'
是mysql_insert_id()
不工作?哪里不对?
你不会有一个有效的mysql_insert_id(),直到你在当前会话/连接的插件。解决方法:AUTOINCREMENT pk(在表创建脚本中)。 – 2012-02-16 20:57:44