如何检查我打算插入到我的表的ID是否已经存在?如果是的话我怎么重复这个过程如何检查INSERT INTO ID是否已经存在于数据库(PHP)中
$itemID = rand(1,99);
$itemName = $_POST['insert_item_name'];
$query = "INSERT INTO items (id, name) VALUES('$itemID', '$itemName')";
如何检查我打算插入到我的表的ID是否已经存在?如果是的话我怎么重复这个过程如何检查INSERT INTO ID是否已经存在于数据库(PHP)中
$itemID = rand(1,99);
$itemName = $_POST['insert_item_name'];
$query = "INSERT INTO items (id, name) VALUES('$itemID', '$itemName')";
做你想要什么,最简单的方法是运行一个选择首先要检查 - 但这可能不是最好的解决方案。常用的方法是使用一个列,如auto_increment
,这意味着您只需在该列的表中插入null
,数据库将自动递增1。
例如,用auto_increment列,所有你需要做的是插入这样的:
insert into items (id, name) values (null, 'SomeName');
这将确保该列是独一无二的,绝不会与多个记录相同的ID结束。
您也可以尝试类似replace into的东西,它将替换该行,如果它已经存在该ID。
replace into items(id, name) values (3,'SomeName');
这将插入一行到表中,如果没有一个,或更换还有什么在查询新的数据 - 但是当创建你需要确保列id
设置为唯一桌子。
$aSql = mysql_query("select count(*) from table where id = '$itemID'");
$iCnt = mysql_fetch_array($aSql);
if($iCnt > 0)
{
echo "Id already exists";
}
else
{
echo "insett new id";
}
如果脚本的两个实例同时运行,该怎么办? – Cully
为什么不把你的id列设置为AUTO_INCREMENT? – Cully
'在重复密钥更新中' – Deadooshka