我想在表格中插入新行。我希望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