- Samsung Galaxy S25 - végre van kicsi!
- Google Pixel 10 és 10 Pro összehasonlító gyorsteszt
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- Fotók, videók mobillal
- Poco X6 Pro - ötös alá
- iPhone topik
- Kijelző került a kamerasávra a Xiaomi 17 Pro és 17 Pro Max hátulján
- Huawei Watch Fit - hajtás, kartárs!
- Apple Watch
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
Új hozzászólás Aktív témák
-
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
- Bomba ár! Dell Latitude 5520 - i5-11GEN I 16GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Gari
- Bomba ár! Dell Latitude 5511 - i7-10850H I 16GB I 1TBSSD I 15,6" FHD I Cam I HDMI I W11 I Garancia!
- Bomba ár! Lenovo ThinkPad Yoga 260 - i5-G6 I 8GB I 256SSD I 12,5" FHD Touch I W10 I Cam I Gari!
- Bomba ár! Lenovo ThinkPad X1 Yoga 2nd - i7-7G I 16GB I 512SSD I 14" FHD Touch I Cam I W11 I Gar!
- Bomba ár! Lenovo ThinkPad X1 Yoga2nd - i5-7G I 8GB I 256-1024SSD I 14" WQHD Touch I Cam I W11 I Gar!
- BESZÁMÍTÁS! 64GB (2x32) G.Skill Trident Z NEO RGB 4000MHz DDR4 memória garanciával hibátlan működés
- Telefon felvásárlás!! Samsung Galaxy A14/Samsung Galaxy A34/Samsung Galaxy A54
- Apple iPhone 15 128GB,Dobozával,12 hónap garanciával
- iPhone 13 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3430, 91% Akkumulátor
- HIBÁTLAN iPhone 14 Pro 256GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3516, 94% Akkumulátor
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest