gpt4 book ai didi

php - PHP 中的多行语句到 MySQL 数据库(采用自动递增 ID)

转载 作者:行者123 更新时间:2023-11-29 11:17:27 25 4
gpt4 key购买 nike

我在弄清楚错误来自何处时遇到了一些问题。背景是我有一个表,并使用一个表单将值更新到表中,并且可以使用不同的按钮更新它们和删除它们。

这使得删除后自动递增的 ID 变得困惑,我认为看看是否可以使用简单的按钮重置顺序是一个很好的做法。

否则我一直在使用

更新它们
SET @num := 0;

UPDATE tableName SET id = @num := (@num+1);

ALTER TABLE tableName AUTO_INCREMENT = 1;

在 phpmyadmin.我从这个答案中得到了它: Auto Increment after delete in MySQL

//resort database
if(isset($_POST['resort'])){

// Database connection opening
$mysqli = NEW MySQLi('localhost','root','','powerstations'); //our server, the username, the password (empty), the database itself
if($mysqli) {
echo "Connected!";
} else {
echo "Problem.";
}


$sql_resort = "SET @num := 0; ";
$sql_resort .= "UPDATE powerdata SET id = @num := (@num+1); ";
$sql_resort .= "ALTER TABLE powerdata AUTO_INCREMENT = 1; ";

if ($mysqli->query($sql_resort) === TRUE) {
echo "Resorted successfully";
} else {
echo "Error: " . $sql_resort . "<br>" . $mysqli->error;
}

$mysqli->close();

我得到的错误是: 设置@num := 0;更新 powerdata SET id = @num := (@num+1);更改表 powerdata AUTO_INCRMENT = 1;

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'UPDATE powerdata SET id = @num := (@num+1); 附近使用的正确语法。 ALTER TABLE powerdata AUTO_INCRMENT' 在第 1 行

我试图通过将多行语句放入 phpmyadmin 来搜索拼写错误,但一无所获,而且我看不出“代码结构”的问题出在哪里(如果有的话)。

最佳答案

当尝试在单个查询中执行多个语句时,您必须调用$mysqli->multi_query($sql)而不是$mysqli->query($sql)

所以你需要更新

if ($mysqli->query($sql_resort) === TRUE) {}

if ($mysqli->multi_query($sql_resort) === TRUE) {

关于php - PHP 中的多行语句到 MySQL 数据库(采用自动递增 ID),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39493942/

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