@9StarRu

Как из базы данных получить следующий id?

Есть код, который отправляет в базу данных, данные о платеже:

include 'include.php';

$invoice_id = 0001;
$price_in_usd = 5.00;
$product_url = 'nutbolt.jpg';
$price_in_btc = file_get_contents($blockchain_root . "tobtc?currency=USD&value=" . $price_in_usd);

$db = new mysqli($mysql_host, $mysql_username, $mysql_password) or die(__LINE__ . ' Invalid connect: ' . mysqli_error());

$db->select_db($mysql_database) or die( "Unable to select database. Run setup first.");

//Add the invoice to the database
$stmt = $db->prepare("replace INTO invoices (invoice_id, price_in_usd, price_in_btc, product_url) values(?,?,?,?)");
$stmt->bind_param("idds",$invoice_id, $price_in_usd, $price_in_btc, $product_url);
$result = $stmt->execute();

if (!$result) {
    die(__LINE__ . ' Invalid query: ' . mysqli_error($db));
}

В примере выше, в базу запишется платеж под id №1
Как в данном примере сделать так, чтобы значение
$invoice_id = 0001;
заполнялось автоматически, т.е. в базе проверялся следующий id и при создании следующего платежа
$invoice_id = ****;
заполнялось автоматически?

База
//Run this file one to init the database
//Needs write permissions in current directory to create the database file

include 'include.php';

$mysqli = new mysqli($mysql_host, $mysql_username, $mysql_password);
if ($mysqli->connect_error) {
    die(__LINE__ . ' Invalid connect: ' . $mysqli->connect_errno);
}

$result = $mysqli->query('CREATE DATABASE IF NOT EXISTS `' . $mysql_database . '`');

if (!$result) {
    die(__LINE__ . ' Invalid query: ' . $mysqli->errno);
}

$mysqli->select_db($mysql_database);
if (!$result) {
    die(__LINE__ . ' Unable to select database. Run setup first: ' . $mysqli->errno);
}

$result = $mysqli->query('CREATE TABLE IF NOT EXISTS invoices (invoice_id INTEGER, price_in_usd DOUBLE, price_in_btc DOUBLE, product_url TEXT, PRIMARY KEY (invoice_id))');

if (!$result) {
    die(__LINE__ . ' Invalid query: ' . $mysqli->errno);
}


Спасибо!
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Самое простое - добавить полю AUTO_INCREMENT, тогда оно будет увеличиваться автоматически. Недостаток - если запрос на добавление записи не пройдёт, то останется лакуна, неиспользованный номер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы