сбросить автоинкремент с помощью подготовительного этапа

У меня есть некоторые проблемы при использовании оператора prepare, потому что я никогда не использовал его раньше. Мой код

$maxid = $rowid['product_id'];
$reset = "ALTER TABLE streamyxup AUTO_INCREMENT = $maxid";
$stmt = $conn->PREPARE($reset);
$query->EXECUTE;
DEALLOCATE PREPARE stmt;

1

Решение

Вы должны изменить свой код, как показано ниже, чтобы использовать подготовленный MySQL оператор

$maxid = $rowid['product_id'];
$reset = "ALTER TABLE streamyxup AUTO_INCREMENT = ?";
$stmt = $conn->prepare($reset);
$stmt->bind_param("i", $maxid);
$stmt->execute();

РЕДАКТИРОВАТЬ

Вы смешиваете объектно-ориентированный и процедурный путь mysql. измените код подключения, как показано ниже

session_start();
$conn = new mysqli("103.6.xxx.xxx", "Miow", "xxow2!", "pe_tm");

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
1

Другие решения

SELECT MAX(autoincrement_field) + 1 FROM streamyxup INTO @maxautoinc;
ALTER TABLE streamyxup AUTO_INCREMENT = @maxautoinc;

А ТАКЖЕ

  SELECT @max := MAX(ID)+ 1 FROM streamyxup;

PREPARE stmt FROM 'ALTER streamyxup ABC AUTO_INCREMENT = ?';
EXECUTE stmt USING @max;

DEALLOCATE PREPARE stmt;
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector