gpt4 book ai didi

php - 获取最后插入的 varchar id,它是一个主键

转载 作者:行者123 更新时间:2023-11-30 22:48:52 24 4
gpt4 key购买 nike

我有多个表,必须使用不同的形式插入,所有表都有一个 id,它是主键和它的 varchar (NOT NULL),所以我有一个名为 id_calc($tbl,$id) 的类函数其中 $tbl 是一个带有表名的参数,$id 是一个字段 id。每次插入时都必须为 id 调用此函数。

例如:如果我的 ID 是“web1”,接下来当我插入它时应该给出“web2”、“web3”……我已经尝试使用 LAST_INSERT_ID() 但它不起作用。所以我尝试了获取 max(id) 并拆分字符串和变量,但也给出了一些问题。所以我该怎么做。请帮忙!!!

class first{
public function id_calc($tbl,$id)
{
$sql = mysql_query("SELECT max($id) FROM $tbl where $id like '%web%'");
if($sql)
{
while ($row = mysql_fetch_assoc($sql))
{
$user=$row;
$a=implode(" ",$user);

}
$pattern = "/(\d+)/";
$array = preg_split($pattern, $a, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$new[]=$array['0'];
$new[]=$array['1']+1;
$result=implode("",$new);
return $result;
}
}
}

这个函数是这样调用的

 public function insertreport1()
{
$obj=new first();
$id=$obj->id_calc(tablename,idfield);
//insert query
}

这是我的表结构

CREATE TABLE `report` (
`inc_id` varchar(25) NOT NULL,
`inc_status` int(11) NOT NULL,
`inc_date` datetime NOT NULL,
`inc_Name` varchar(45) NOT NULL,
`inc_Age` int(11) NOT NULL,
`inc_Gender` varchar(45) NOT NULL,
`inc_Mobile` varchar(45) NOT NULL,
`inc_Address` varchar(250) NOT NULL,
`inc_treatment` varchar(45) DEFAULT NULL,
`inc_userid` varchar(10) NOT NULL,
`inc_repTime` datetime NOT NULL
PRIMARY KEY (`inc_id`),

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

最佳答案

我认为你可以这样做..将查询写成“SELECT MAX(CAST(SUBSTRING($id,4,12) AS UNSIGNED)) FROM $tbl WHERE $id LIKE '%web%'”然后将 id 递增为 web+(max+1)。

关于php - 获取最后插入的 varchar id,它是一个主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739447/

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