Php pdo prepared stmt - Ha nem felel meg a paraméter likas lesz?
Hogyan lehet megoldani legegyszerűbben, hogy csakis akkor hajtsa végre a queryt, ha minden paraméter megfelel?
pl:
INSERT ... :cim, :szoveg, :valami_fontos_szam ...
...
$q->bindParam(':cim', $cim, ..str..);
$q->bindParam(':valami_fontos_szam', $szam, ..int..);
és a szám értéke 'jancsi'.
Az egész rekord beíródik, és a fontos szám üres lesz..
//mysql - innoDB ha számít valamit
/* ***rizsa***
persze az elején van egy csomó művelkedés az adatok előkészítéséhez, pl ha !isset, empty return, aztán trim, nem megengedett karakterek eltűntetése... és így a végén előfordulhat hogy újra üres lesz, és rengeteg adatnál ezek után megint ellenőrizzem le?
Meg most tegyek még minden szám elé egy regexpet is, hogy tényleg szám-e?...
*/
[link] ?
Bár... ha felhasználó adja meg a számot, akkor érdemes már a felületen ellenőrizni, hogy az tényleg szám-e. Ha meg a szoftveresen áll elő a szám (számláló, adatbázisból származó id) akkor úgy írd meg a kódot, hogy az tényleg szám is legyen és akkor első körben nincs szükség ellenőrzésre.
oké értem, azt hittem van valami beállítása, vagy valami jelzést ki lehet nyerni belőle, ha valami paraméter nem felel meg.
De így kb felesleges az int típusú ahol nem lehet üres, mert így előtte úgyis ellenőriznem kell, hogy megfelel-e, és akkor már biztonságos is.
(persze hogy áttekinthetőbb legyen, így még mindig van "értelme" bindParam-ot használni..)
/*
amúgy ellenőrzök js-el is, meg szerveroldalon is, kétféle tömböt fésülök össze, az egyikben számok, a másikban vesszővel elválasztott szöveg szétszedve, ami ha nincs még db-ben, beírom, és annak az id-ját viszem tovább.
Még egyelőre nem sikerült (..megint...) rátalálnom a jó megoldásra, mert ha így adja meg hogy " valami , , , valami2", akkor eljut az üres string is az insertig, és itt kezdtem el gondolkozni, hogy még 3.szor is ellenőrizzem, hogy jók-e a tömb értékei...
persze most kapásból meg tudnám oldani, de a legszebb megoldást keresem :), és még nem szedi ki rendesen a szóközt sem, mert nem teszi nagybetűvé az első betűt..
(pedig már jó volt egyszer, mit csináltam én vele!? D:)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!