Ahojte, trapim sa tu s jednym problemom ktoremu neviem prist na pricinu. Mam tuto jednoduchu cast kodu
Kód:
/// BackUp riadok ak 1 robi zalohu ak 0 nerobi
$insertEquip = $conn->query("INSERT INTO ".$equip_type." (IPAddress, Name, Date, BackUp) VALUES ('".$ip_equip."','".$equip_name."','".$date_add."',true)");
if ( !$insertEquip ) {
echo "Vyskytla sa nasledujúca chyba, pridanie neprebehlo korektne : ";
echo $conn->error;
exit;
}
Kod pridava do db jednotlive zariadenia a ich IP adresu, povodne som mal nastavene IPAddress na UNIQUE aby som sa vyhol duplicite. Ale z nejakeho dovodu vznikla Duplicitna chyba niekedy pri vkladani novej IP aj ked v tabulke vobec nebola. Preto som zrusil UNIQUE a nastavil len INDEX na IP v php som len na test pridal aj tuto cast kodu
Kód:
$selectEquip = $conn->query("SELECT * FROM ".$equip_type." WHERE `IPAddress` = '".$ip_equip."'");
$selectRows = $selectEquip->num_rows;
A problem sa v podstate opakuje ako pri UNIQUE pri niektorych IP mi num rows vrati 1 ako by dostal zaznam z tabulky ze tam je ale pritom tam nie.
Overoval som si to aj tak ze pred pridanim do DB som si cez phpmyadmina skusil SELECTom vytiahnut IP ktore planujem pridat ale ich nenaslo cize vratilo 0.Ale ked som to pridaval uz cez formular a teda hore uvedeny kod pri niektorych bola hodnota num_rows 1 a tym padom ho nepridalo.
A tu je este nakoniec struktura tabulky kde sa data vkladaju
Kód:
CREATE TABLE `mikrotik` (
`ID` int(11) UNSIGNED NOT NULL,
`IPAddress` varchar(15) COLLATE utf8mb4_unicode_ci NOT NULL,
`Name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`Date` date NOT NULL,
`BackUp` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Za kazdu radu alebo nasmerovanie k rieseniu problemu dakujem