- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- ldave: New Game Blitz - 2025
- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- Magga: PLEX: multimédia az egész lakásban
- Rap, Hip-hop 90'
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Ú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
- Motoros topic
- Hálózati / IP kamera
- Honor 200 Pro - mobilportré
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Kertészet, mezőgazdaság topik
- Leesett a kamionról több millió eurónyi Z Fold7
- PlayStation 5
- Autós topik
- BestBuy ruhás topik
- További aktív témák...
- Apple MacBook Pro 14 M4 Max (14C/32C)/36GB/1024GB
- Seagate BarraCuda 3.5 8TB 5400rpm 256MB SATA3 (ST8000DM004) Recertified, új, több db
- Eladó billentyűzet csomag!
- WD Red Pro 6TB (WD6003FFBX, 7200rpm, 256MB, CMR) 353 nap futásidő - garancia: 2028.02.29ig
- MacBook Pro Retina 13" M2 Chip 16GB RAM / 512 SSD / Magyar / 60 nap garancia
- Gamer PC-Számítógép! Csere-Beszámítás! R5 1600X / GTX 1080 8GB / 32GB DDR4 / 256SSD + 2TB HDD
- Bezámítás! HP Victus 16-D0655NG Gamer notebook - i5 10400H 16GB DDR4 512GB+1TB SSD RTX 3060 6GB W11
- MacBook Pro 13, 14, 15, 16, MacBook Air M1, M2 M3 M4 bill magyarosítás lézerrel / sapkacserével
- Samsung LH46EDDPLGC 46" FullHD LED Monitor
- HIBÁTLAN iPhone 14 Pro 256GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3014, 91% Akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest