Я искал много подобных вопросов, хотя я не могу найти ничего, что периодически < /strong> возвращает 0 < /p>
**** РЕДАКТИРОВАТЬ ***** < /p>
Я с тех пор пробовал тестирование с новой таблицей только с двумя столбцами, что я могу иметь также около 1 в 50 раз. Только сейчас смог протестировать на платном хостинговом сервере, и я не смог повторить свою проблему < /p>
Я предполагаю, что проблема моей быть специфической для этого веб -хоста. < /p>
Проблема: < /strong> < /p>
Получил «Последний ID». я. < /p>
localhost, все работает нормально без проблем. Проблема возникает только тогда, когда мой веб -сайт размещен на сервере. < /P>
SELECT LAST_INSERT_ID() intermittently returns 0
$PDOconnection->lastInsertId(); Always returns correct ID
< /code>
Мне нужно надежно получить последний вставленный идентификатор на основе подключения, поскольку он важен для процесса проверки моего веб-сайта при создании порядка покупки в базе данных. /> Вставка SQL всегда работает нормально, и база данных показывает новую запись. < /li>
Переключение PHP -версии не разрешает проблему < /li>
Веб -хост, который я использую, является бесплатным службой хостинга, которую я использую для Live
Testing Creats < /li>
Время загрузки страницы. /> < /ul>
Я раздевал весь код (как ниже), чтобы проверить в простоте. Проблема по -прежнему остается < /p>
Я не могу тренироваться там, где лежит моя проблема. < /P>
include_once "php/config.php";
$cookie_id = 0;
// Time of checkout
$time = gmdate("d/m/Y h:i:s");
// Create new purchase order
$sql_insert = "INSERT INTO user_purchases (cart_id, timestamp) VALUES (:cookie_id, :time)";
$stmt_insert = $PDOconnection->prepare($sql_insert);
$stmt_insert->bindParam(':cookie_id', $cookie_id, PDO::PARAM_STR);
$stmt_insert->bindParam(':time', $time, PDO::PARAM_STR);
$stmt_insert->execute();
$checkout_id_0 = $PDOconnection->lastInsertId();
// Get the primary key id of the last inserted item on per-connection basis
$sql_last_id = "SELECT LAST_INSERT_ID()";
$stmt_last_id = $PDOconnection->prepare($sql_last_id);
$stmt_last_id->execute();
$r_last_id = $stmt_last_id->fetch(PDO::FETCH_ASSOC);
$checkout_id_1 = $r_last_id['LAST_INSERT_ID()'];
echo $checkout_id_0 . " " . $checkout_id_1; // I echoed out to observe results
< /code>
Реальный пример результатов для 10 запросов в ряду (просто, просто освежив страницу). Я повторил результаты рядом. < /p>
checkout_id_0 $checkout_id_1
connection config: < /p>
$PDOconnection = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $sql_username, $sql_password);
// Set PDO error mode to exception
$PDOconnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Set PDO Attribute to force native prepared statements
$PDOconnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Подробнее здесь: https://stackoverflow.com/questions/467 ... -returns-0
Выберите Last_insert_id () периодически возвращает 0 ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1758233479
Anonymous
Я искал много подобных вопросов, хотя я не могу найти ничего, что периодически < /strong> возвращает 0 < /p>
**** РЕДАКТИРОВАТЬ ***** < /p>
Я с тех пор пробовал тестирование с новой таблицей только с двумя столбцами, что я могу иметь также около 1 в 50 раз. Только сейчас смог протестировать на платном хостинговом сервере, и я не смог повторить свою проблему < /p>
Я предполагаю, что проблема моей быть специфической для этого веб -хоста. < /p>
Проблема: < /strong> < /p>
Получил «Последний ID». я. < /p>
localhost, все работает нормально без проблем. Проблема возникает только тогда, когда мой веб -сайт размещен на сервере. < /P>
SELECT LAST_INSERT_ID() intermittently returns 0
$PDOconnection->lastInsertId(); Always returns correct ID
< /code>
Мне нужно надежно получить последний вставленный идентификатор на основе подключения, поскольку он важен для процесса проверки моего веб-сайта при создании порядка покупки в базе данных. /> Вставка SQL всегда работает нормально, и база данных показывает новую запись. < /li>
Переключение PHP -версии не разрешает проблему < /li>
Веб -хост, который я использую, является бесплатным службой хостинга, которую я использую для Live
Testing Creats < /li>
Время загрузки страницы. /> < /ul>
Я раздевал весь код (как ниже), чтобы проверить в простоте. Проблема по -прежнему остается < /p>
Я не могу тренироваться там, где лежит моя проблема. < /P>
include_once "php/config.php";
$cookie_id = 0;
// Time of checkout
$time = gmdate("d/m/Y h:i:s");
// Create new purchase order
$sql_insert = "INSERT INTO user_purchases (cart_id, timestamp) VALUES (:cookie_id, :time)";
$stmt_insert = $PDOconnection->prepare($sql_insert);
$stmt_insert->bindParam(':cookie_id', $cookie_id, PDO::PARAM_STR);
$stmt_insert->bindParam(':time', $time, PDO::PARAM_STR);
$stmt_insert->execute();
$checkout_id_0 = $PDOconnection->lastInsertId();
// Get the primary key id of the last inserted item on per-connection basis
$sql_last_id = "SELECT LAST_INSERT_ID()";
$stmt_last_id = $PDOconnection->prepare($sql_last_id);
$stmt_last_id->execute();
$r_last_id = $stmt_last_id->fetch(PDO::FETCH_ASSOC);
$checkout_id_1 = $r_last_id['LAST_INSERT_ID()'];
echo $checkout_id_0 . " " . $checkout_id_1; // I echoed out to observe results
< /code>
Реальный пример результатов для 10 запросов в ряду (просто, просто освежив страницу). Я повторил результаты рядом. < /p>
checkout_id_0 $checkout_id_1
connection config: < /p>
$PDOconnection = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $sql_username, $sql_password);
// Set PDO error mode to exception
$PDOconnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Set PDO Attribute to force native prepared statements
$PDOconnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Подробнее здесь: [url]https://stackoverflow.com/questions/46743899/select-last-insert-id-intermittently-returns-0[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия