- Samsung Galaxy S25 Edge - a tegnap határán
- Ezek az új Google Pixel cuccok hivatalos magyar árai
- Apple Watch Sport - ez is csak egy okosóra
- Android alkalmazások - szoftver kibeszélő topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- iPhone topik
- One mobilszolgáltatások
- Műholdakkal is beszélgethet a Redmi Note 15 Pro+
- Samsung Galaxy S25 - végre van kicsi!
- Vivo X200 Pro - a kétszázát!
Ú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
- Kerékpárosok, bringások ide!
- Óra topik
- Samsung Galaxy S25 Edge - a tegnap határán
- TCL LCD és LED TV-k
- Bittorrent topik
- Ezek az új Google Pixel cuccok hivatalos magyar árai
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Nyíregyháza és környéke adok-veszek-beszélgetek
- Kormányok / autós szimulátorok topikja
- Apple Watch Sport - ez is csak egy okosóra
- További aktív témák...
- DJI Mini 4 pro Fly More Combo FMC RC2 drón új állapotban
- DJI Mini 4 pro Fly More Combo RC2 drón 6 akkumulátorral - Garancia, Care Refresh
- DJI Mini 4 pro - Fly More Combo - RC2 drón szett - Garancia, Care Refresh
- DJI Mavic 3 Fly More Combo RC Pro drón szett - 4/3" Hasselblad + 7x-es zoom kamera
- Asus ROG Strix Flare II Animate Gamer Billentyűzet - Magyar kiosztás
- iKing.Hu - Vivo X200 FE Blue Használt, újszerű állapotban 12 GB RAM / 256 GB tárhely Garancia!
- HIBÁTLAN iPhone 15 Pro 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3226, 90% Akkumálátor
- Csere-Beszámítás! Garancia! Steam Deck LCD 512GB + 256GB Ajándék Micro SD Kártya!
- Xbox Ultimate előfizetések
- Bomba Ár! Fujitsu LifeBook E752 - i5-3GEN I 8GB I 320-500GB I DVDRW I 15,6" HD I Cam I W10 I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest