У меня есть несколько таблиц, которые необходимо вставить с использованием разных форм, и вся таблица имеет один идентификатор, который является первичным ключом и его varchar (NOT NULL), поэтому у меня есть один класс function, называемая id_calc ($ tbl, $ id), где $ tbl - это параметр с именем таблицы, а $ id - идентификатор поля. И каждый раз при вставке этой функции нужно вызывать id.Получение последнего вставленного идентификатора varchar, который является первичным ключом
например: Если мой идентификатор «web1», следующий, когда я вставляю его, shud дать «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;
хорошо, есть ли в колонке автоинкремент? Примечание: расширение 'mysql_ *' устарело, пожалуйста, воздержитесь от его использования. –
нет автоинкремент. – user092
, то вам, вероятно, понадобится колонка для заказа. Либо автоинкрементный, либо временный столбец, который записывает вставленное время. –