gpt4 book ai didi

php - MS SQL 2005 自动递增错误

转载 作者:搜寻专家 更新时间:2023-10-31 21:29:52 25 4
gpt4 key购买 nike

所以,我尝试在我的数据库“Test”中创建一个表,

CREATE TABLE TestTbl(
id INT IDENTITY(1,1),
Agent_id VARCHAR(255) NOT NULL
)

创建后,我尝试通过php为代理添加2个值,结果是这样的:

id | Agent_id
0 8080
0 8081

它不会自动递增,即使我将'id'设置为主键,问题仍然存在,有人知道如何解决这个问题吗?

这是我在 php 中的插入语句,没关系 $conn,因为它有效,它用于我的 sql 连接

 if(isset($_POST['agentid'])){
$agent = $_POST['agentid'];
$query = "SELECT * FROM [Test].[dbo].[TestTbl] WHERE [Agent_id] = '$agent'";
$result = sqlsrv_query($conn,$query);
if(sqlsrv_has_rows($result) !=0){
echo "ID EXISTS";
}else{
$sql = "SET INDENTITY_INSERT TestTbl ON
INSERT INTO [Test].[dbo].[TestTbl]
([id],[Agent_id]) VALUES ('','$agent')
SET IDENTITY_INSERT TestTbl OFF";
echo "Added";
}}

最佳答案

改变这部分

来自

INSERT INTO [Test].[dbo].[TestTbl]
([id],[Agent_id]) VALUES ('','$agent')

INSERT INTO [Test].[dbo].[TestTbl]
([Agent_id]) VALUES ('$agent')

当它是自动递增时,您不需要在 INSERT 语句中指定它。

当您想使用表格的自动递增功能时,也不要将 SET IDENTITY_INSERT 设置为 OFF

SET IDENTITY_INSERT允许将显式值插入到表的标识列中。

您的完整查询

 if(isset($_POST['agentid'])){
$agent = $_POST['agentid'];
$query = "SELECT * FROM [Test].[dbo].[TestTbl] WHERE [Agent_id] = '$agent'";
$result = sqlsrv_query($conn,$query);
if(sqlsrv_has_rows($result) !=0){
echo "ID EXISTS";
}else{
$sql = "INSERT INTO [Test].[dbo].[TestTbl]
([Agent_id]) VALUES ('$agent')";
echo "Added";
}}

关于php - MS SQL 2005 自动递增错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com