Hirdetés
- TCL LCD és LED TV-k
- iGPSport iGS800 kerékpáros óra: egyből a csúcsra tör
- OLED TV topic
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Kezdő fotósok digitális fényképei
- Fejhallgató erősítő és DAC topik
- Drágul az EU-ban a GeForce RTX 4090
- 5.1, 7.1 és gamer fejhallgatók
- Gaming notebook topik
- Újabb stabilitási hibát javít az Intel friss mikrokódja
Hirdetés
-
Felárat fizet az atomenergiáért a Microsoft
it A Jefferies szerint a Microsoft prémium árat fizet a Constellation számára, hogy indítsák be a Three Mile Island-i atomerőművet.
-
Billentyűzettel autóznék újra, van még ilyen gém?
lo Régebben voltak billentyűzettel jól irányítható "árkád" autós játékok, most csak két ilyet ismerek:...
-
Minimalista microATX-es ház hagyta el az In Win tervezőasztalát
ph A "lopakodó" alaplapok fogadására felkészített konstrukció beletere nem lett szűkös, és az egyik változatának elejét fával díszítették.
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz rootkiller #10716 üzenetére
$stmt = $db->prepare("UPDATE `event` SET `name`=[:evName],`date`=[:evDate],`guest`=[:evGuest],
`prLoc`=[:evPrLoc],`prPre`=[:evPrPre],`pLoc`=[:evPLoc],`pAdr`=[:evPAdr],`doors`=[:dvDoors],`fb`=[:evFB]
WHERE `id` =" . $_GET['id']);Ez így ROSSZ. Egyrészt ez a tömbszerű szintaktika nem kell (ez honnan jött?), tehát az rossz, hogy `name`=[:evName], helyette legyen `name`=:evName (ugyanígy a többi paraméternél is), másrészt pontosan az volt az egésznek a lényege, hogy ne legyen konkatenálva (összefűzve) a query, hanem legyen prepared statement - ergo ez a WHERE `id` =" . $_GET['id'] teljesen rossz, azt pontosan ugyanúgy kell helyettesíteni egy paraméterrel, mint az összes többit, például: WHERE `id` =:id, aztán majd az :id paraméternek megfeleltetsz egy megfelelő párt.
A hibaüzenet, vagyis az, hogy "PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in...", valószínűleg azért van, mert elgépelted, ez van a query-dben:
`doors`=[:dvDoors]
egyrészt megint csak ez a tömbös szintaktika rossz, a helyes a dvDoors helyett az evDoors lenne a korábbiak alapján, meg az alapján, amit az array_intersect_key-nek átadtál (ott 'evDoors'=>0 szerepel, magyarul itt a query-ben d-t írtál véletlenül), tehát azt cseréld le erre:
`doors`=:evDoorsTermészetesen ahhoz, hogy az :id paraméternek megfelelő rész is működjön, a $params tömbödbe bele kell passzírozni még az id-t is, szóval így néz ki (ha el nem gépeltem):
$input = $_POST;
$input['id'] = ( isset($_GET['id']) ? $_GET['id'] : 0);
$db = new PDO('mysql:host=localhost;dbname=hangar', 'root', 'root');
$db->query("SET NAMES 'utf-8';");
$db->query("SET CHARACTER SET UTF8");
$stmt = $db->prepare('UPDATE `event` SET `name`=:evName,`date`=:evDate,`guest`=:evGuest,
`prLoc`=:evPrLoc,`prPre`=:evPrPre,`pLoc`=:evPLoc,`pAdr`=:evPAdr,`doors`=:evDoors,`fb`=:evFB
WHERE `id`=:id');
$params = array_intersect_key($input, array('evName'=>0,'evDate'=>0,'evGuest'=>0,'evPrLoc'=>0,'evPrPre'=>0,'evPLoc'=>0,'evPAdr'=>0,'evDoors'=>0,'evFB'=>0,'id'=>0));
$stmt->execute($params);Sk8erPeter
Új hozzászólás Aktív témák
- Xiaomi Redmi 10 4/64GB, Normál, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- Honor 200 8/256GB, Újszerű, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- Xiaomi Redmi Note 8T 4/64GB, Újszerű, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- Xiaomi Redmi Note 11 Pro 5G 6/128GB, Megkímélt, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Samsung Galaxy A14 4/64GB, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen