- Fontos marad a nyílt forráskód az Intelnek, csak nem a megszokott formában
- AMD Navi Radeon™ RX 9xxx sorozat
- Sony MILC fényképezőgépcsalád
- Milyen SSD-t vegyek?
- Projektor topic
- LG LCD és LED TV-k
- Milyen TV-t vegyek?
- Gaming notebook topik
- Házimozi belépő szinten
- AMD K6-III, és minden ami RETRO - Oldschool tuning
Ú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
- One otthoni szolgáltatások (TV, internet, telefon)
- PlayStation 5
- Autós topik
- Ubiquiti hálózati eszközök
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Fontos marad a nyílt forráskód az Intelnek, csak nem a megszokott formában
- Autóápolás, karbantartás, fényezés
- Kedvenc zene a mai napra
- Béta iOS-t használók topikja
- Az eddigi legjobb S26 Ultra renderkép
- További aktív témák...
- HP 24" IPS LED FULL HD monitor 24fh 4HZ37AA
- PlayStation Network (PSN) ajándékkártyák, feltöltőkártyák áron alul!
- BESZÁMÍTÁS! Acer Predator Helios 300 17 FHD notebook - i7 9750H 32GB DDR4 1TB SSD RTX 2060 6GB W11
- HIBÁTLAN iPhone 13 Pro Max 256GB Gold -1 ÉV GARANCIA -Kártyafüggetlen, MS3758, 91% Akkumulátor
- HIBÁTLAN iPhone 13 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3139, 95% Akkumulátor
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő