- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Argos: Szeretem az ecetfát
- Gurulunk, WAZE?!
- Magga: PLEX: multimédia az egész lakásban
- Elektromos rásegítésű kerékpárok
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
Ú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
Hirdetés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Nintendo Switch 2
- Apple asztali gépek
- Milyen videókártyát?
- Melyik tápegységet vegyem?
- BestBuy topik
- Milyen okostelefont vegyek?
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Vicces képek
- További aktív témák...
- Bomba ár! Lenovo ThinkPad X260 - i5-6G I 8GB I 256GB SSD I 12,5" HD I HDMI I CAM I W10 I Gari!
- Több mint 70.000 eladott szoftverlicenc
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- Telefon felvásárlás!! Huawei P20 Lite/Huawei P20/Huawei P30 Lite/Huawei P30/Huawei P30 Pro
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged