Bez zbędnych wstępów, dziś opowieść nadesłana przez Albiego
Próbując napisać pewnego SQL'a do sklepu internetowego z którym mam przyjemność(?) pracować, natknąłem się na tabelkę która podczas dodawania wpisy z zerowym kluczem wyrzucała mi piękny błąd DUPLICATE ENTRY FOR KEY xxxx. Oczywiście, brak auto_increment... Co w tym przypadku było dość dziwne. Po długich poszukiwaniach w kodzie sklepu sprawa okazała się jasna.
$max_values_id_values = $db->Execute("select max(products_options_values_id) + 1
as next_id from " . TABLE_PRODUCTS_OPTIONS_VALUES);
$next_id = $max_values_id_values->fields['next_id'];
<input type="hidden" name="value_id" value="<?php echo $next_id; ?>">
$value_id = zen_db_prepare_input($_POST['value_id']);
$db->Execute("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . "
(products_options_id, products_options_values_id)
values ('" . (int)$option_id . "', '" . (int)$value_id . "')");