我不想将SQL Server表的ID号设置为自动递增。因此,我在PHP程序中设置了此数字。我这样做的方法是,获取表的当前ID值,然后向其添加+1,然后将此数字插入表中。
示例:
$query = "SELECT MAX(ID) FROM T01";
$result=sqlsrv_query($conn, $query);
$IDTable = sqlsrv_fetch_array($result);
$Column1= getPOST('Column1' . $column);
$Column2= getPOST('Column2' . $Column);
$ID1 = $IDTable[0]+1;
$params = array(&$ID1,&$Column1,&$Column2);
# Statement
$sql = "INSERT INTO MyTable ([ID],[Column1],[Column2]) VALUES (?,?); SELECT SCOPE_IDENTITY();";
现在我有了一个表单,在该表单中,可以在SQL表(MyTable)中插入多于1行。现在发生问题,使用下面的代码为所有插入的行赋予相同的ID。因此,我收到一条错误消息,说重复的ID值。
我该如何克服?
答案 0 :(得分:0)
将其保存到变量中,并将其作为其他任何变量插入。
//假定$ dbc是引用数据库连接的变量 //获取最后一个ID $ select_last_id_sql = mysqli_query($ dbc,“ SELECT table_id,time_recorded from TableName ORDER BY time_recorded DESC LIMIT 1”)或die(mysqli_error($ dbc);
$ id_row = mysqli_fetch_array($ select_last_id_sql); $ id = $ id_row ['table_id']; $ int =(int)filter_var($ id,FILTER_SANITIZE_NUMBER_INT); $ int = $ int + 1; $ new_table_id =“ T”。$ int;