Я новичок в PHP, и у меня возникли небольшие проблемы с настройкой кода для автоматического увеличения идентификаторов для SQL. Я знаю, что метод, который я пробую, не очень хороший подход и знаю о рисках состояния гонки и т. Д. Это будет временным, пока я не разберусь с остальным кодом должным образом.
Может кто-нибудь сказать мне, что я здесь делаю неправильно? Или помочь мне получить действительный код?
Мои занятия:
<?php
$user = 'root';
$pass = '';
$db = 'testuser';
$con=mysqli_connect('localhost', $user, $pass, $db) or die('Unable to connect');
$data = json_decode(trim(key($_POST), '[]'), true);
$email = $data['email'];
$name = $data['name'];
$shortDes = $data['shortDes'];
$longDes = $data['longDes'];
$max = mysqli_prepare($con, 'SELECT MAX(society_id) FROM society');
$society_id = $max + 1;
$statement = mysqli_prepare($con, 'INSERT INTO society(society_id, name, email, short_des, long_des) VALUES (?, ?, ?, ?, ?)');
mysqli_stmt_bind_param($statement, 'issss', $societyId, $name, $email, $shortDes, $longDes);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_close($statement);
mysqli_close($con);
?>
Сосредоточив внимание на следующем фрагменте:
$max = mysqli_prepare($con, 'SELECT MAX(society_id) FROM society');
$society_id = $max + 1;
$statement = mysqli_prepare($con, 'INSERT INTO society(society_id, name, email, short_des, long_des) VALUES (?, ?, ?, ?, ?)');
mysqli_stmt_bind_param($statement, 'issss', $societyId, $name, $email, $shortDes, $longDes);
Просто нужно полностью удалить значение для автоинкрементного поля.
Других решений пока нет …