Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在插入查询中添加具有自动递增值的变量值_Php_Mysql_Mysqli_Insert_Sql Insert - Fatal编程技术网

Php 如何在插入查询中添加具有自动递增值的变量值

Php 如何在插入查询中添加具有自动递增值的变量值,php,mysql,mysqli,insert,sql-insert,Php,Mysql,Mysqli,Insert,Sql Insert,我有一个本地主机,我想做一些事情,我希望我能解释一下。 我在一个名为“theway”的数据库中有一个名为“students”的表,有一个名为“s_class_id”的列,它的类型是自动递增的,在php中我在这个表中插入了一些值。但是我想在名为's_class_id'的列中插入一个变量+自动增量。 例如:变量的值为“a”,自动递增值为“5”。我想要像这个'a5'一样插入's_class_id'中的值。 是否有帮助?如果是自动递增,则字段应为整数。不要认为可以将其更改为例如:“a5”。您可以运行更新

我有一个本地主机,我想做一些事情,我希望我能解释一下。 我在一个名为“theway”的数据库中有一个名为“students”的表,有一个名为“s_class_id”的列,它的类型是自动递增的,在php中我在这个表中插入了一些值。但是我想在名为's_class_id'的列中插入一个变量+自动增量。 例如:变量的值为“a”,自动递增值为“5”。我想要像这个'a5'一样插入's_class_id'中的值。
是否有帮助?

如果是自动递增,则字段应为整数。不要认为可以将其更改为例如:“a5”。您可以运行更新查询,搜索s_class_id,并更新另一个字符串字段,将其设置为“a5”。

您可以通过以下方法完成该任务:

首先,您需要将记录插入
theway
表中。记录插入后,
mysqli\u insert\u id($con)
将返回上次插入的id。然后您需要使用上次插入的id更新该行

// Insert Record
mysqli_query($con,"INSERT INTO theway  (s_class_id) VALUES ('a')");
// Getting last inserted id
$lastInsertID =  mysqli_insert_id($con); 
$updatedValue = 'a'.$lastInsertID;
// Update same row with last inserted ida
$SameRowUpdate = "UPDATE theway SET s_class_id='".$updatedValue."' WHERE id=".$lastInsertID;
if (mysqli_query($conn, $SameRowUpdate )) {
    echo "Record addedd successfully";
}

您可以使用PDO实现这一点。但首先需要插入记录
a
,然后必须更新同一行,此时pdo将为您提供lastInserId。您可以使用它更新
s_class_id
a5
@Mr.Developer我这次使用的是mysqli。我能找到一个解决方案吗?我想推荐PDO扩展,它也将保护您免受Sql注入PDO在我的计划中。但是我在一个项目中使用mysqli已经有好几个月了,现在我无法转换成PDO。我在添加这个问题之前考虑过这个问题。但我意识到我可以找到另一个比这更快的解决方案。如果我不能,我会这么做。感谢您的解决方案。不要认为自动递增的数字字段可以更改为类似“a5”的字符串。总之,@Mr.Developer提到的最后一个insert ID可以在这里找到,带有示例代码Mmmm,这意味着我不能做任何非该解决方案的事情。我主要是在添加我的问题后这样做的。但我意识到我可以找到另一个比这更快的解决方案。如果我不能,我会这么做。谢谢您的解决方案。@AmeerAhmed如果答案有帮助,请接受并投票,以备将来参考。