- Ízléses lett a Drop kompakt, vezeték nélküli klaviatúrja
- Jól felszerelt, csúcskategóriás külső videokártya jött a Gigabyte zászlaja alatt
- Gamescom 2025: Limitált szériás Godlike X lap és más finomságok az MSI-nél
- Leégett az első Radeon a hírhedt 12V-2x6 tápkonnektorral
- India betiltja a pénzalapú online játékokat
- Kompakt vízhűtés
- Milyen belső merevlemezt vegyek?
- Samsung LCD és LED TV-k
- Az előírások megszegése miatt éghet le egyes alaplapokon a Socket AM5 foglalat
- Vezeték nélküli fülhallgatók
- Gamescom 2025: Itt a legújabb Gaming NUC
- TCL LCD és LED TV-k
- OLED monitor topic
- Sony MILC fényképezőgépcsalád
- Milyen processzort vegyek?
Új hozzászólás Aktív témák
-
urandom0
senior tag
válasz
lanszelot #21710 üzenetére
1. Én ezeket a sorokat előre tenném, ugyanígy try..catch blokkba, csak egy másikba:
//file create or open if exist
$receptekData = new SQLite3("receptekdb.sqlite", SQLITE3_OPEN_CREATE | SQLITE3_OPEN_READWRITE);
//error handling
$receptekData->enableExceptions(true);
$receptekData->query(
"CREATE TABLE IF NOT EXISTS 'receptek' (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
nev VARCHAR(100) NOT NULL
)"
);Mert ezek ugye kapcsolódnak az adatbázishoz, beállítják a kivételkezelést, és elkészítik a táblát, igazából ezeknek szerintem logikailag nincs közük ahhoz, amit te a feltételben vizsgálsz. Az egy másik történet.
Arról is nem is beszélve, hogy ha később szeretnél írni még egy INSERTET vagy bármit, akkor a $receptekData változódat, ami az SQLite kapcsolatot tárolja, nem fogod tudni elérni.2.
isset($_POST["submitNev"])
!empty($_POST["nev"])
A két feltételt én egybekötném ÉS-sel.
3. A lastInsertRowid-t én nem használnám. Egyetlen egyszer próbáltam használni PDO-nál MYSQL adatbázisnál (PDO::lastInsertId), akkor sem jött össze.
De ha használod, akkor olvasd el ezen az oldalon az első néhány commentet, ott azt írják, hogy ha tranzakciókat használsz (te pedig azokat használsz), akkor a COMMIT elé kell tenni a lastInsertRowid-t. Tehát próbáld meg így:$receptekData->exec('BEGIN');
$receptekData->query("INSERT INTO 'receptek' (nev) VALUES ('$nev')");
$id = $receptekData->lastInsertRowid(); //ennek az értéke nulla, pedig nem annyi
$receptekData->exec('COMMIT');"3.1.1 ott írják az sqlite oldalán a táblázatban."
Az csak egy example, egy példa
Az SQL és az SQLite saját SQL implementációja közti megfeleltetésekről.
De ott is írják, hogy "Note that numeric arguments in parentheses that following the type name (ex: "VARCHAR(255)") are ignored by SQLite - SQLite does not impose any length restrictions (other than the large global SQLITE_MAX_LENGTH limit) on the length of strings, BLOBs or numeric values."----------
Ha túl hosszú a kódod, szedd szét logikailag különálló fájlokra.
Új hozzászólás Aktív témák
- sziku69: Fűzzük össze a szavakat :)
- Kompakt vízhűtés
- Luck Dragon: Asszociációs játék. :)
- Filmgyűjtés
- Milyen belső merevlemezt vegyek?
- Samsung LCD és LED TV-k
- Az előírások megszegése miatt éghet le egyes alaplapokon a Socket AM5 foglalat
- PlayStation 5
- Xbox Series X|S
- Samsung Galaxy S25 - végre van kicsi!
- További aktív témák...
- Topping DX5 (no lite)
- 14900k-hoz keresek delid kittet vagy valakit BP-en akinek van és használhatnám a sajátját!
- AMD AM5 Ryzen7 Win11 FullHD gamingPC 2-3év garanciával (8700G/4060Ti/32GB/1TB M2/WiFi6/BT/Win11)
- Exclusive ajánlat! Eladó Dobozos 14" colos LG GRAM 14 i7-1165G7/16gb ram/512SSD nincs 1kg!
- DJI Mini 4 pro Fly More Combo FMC RC2 drón új állapotban
- BESZÁMÍTÁS! Gigabyte H510M i5 10400F 16GB DDR4 512GB SSD 1TB HDD RX 6600 8GB Zalman S2 TG EVGA 600W
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Felsőkategóriás merev csöves Gamer PC! I7 12700KF / RTX 3090 24GB / 32GB DDR5 / 1TB SSD!
- Nvidia Quadro P400/ P600/ P620/ P1000/ T400/ T600/ T1000 - Low profile (LP) + RTX A2000 6/12Gb
- Bomba ár! Dell Latitude E7470 - i7-6GEN I 16GB I 256GB SSD I 14" FHD I HDMI I CAM I W11 I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest