sziasztok ezzel mi lehet a baj? valamiért nem müködik a lekérdezés ha a változó van ott viszont ha explicit beleírom akkor megy, vmi ötlet?
köszi
- 1757 megtekintés
Hozzászólások
Nyilván olyan mező hogy 'nev' nincs, helyette van nev.
Tehát "where $field" a helyes.
Valszeg az zavart meg hogy a "like '$find'" a helyes mert ez egy érték és igaz hogy "like $find" szám esetén működne de egyéb esetben nem.
- A hozzászóláshoz be kell jelentkezni
$field köré nem ' hanem ` (altgr 7) és a LIKE-ot %-jelekkel megspékelve érdemes használni.
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html…
- A hozzászóláshoz be kell jelentkezni
csak megszültem...
- A hozzászóláshoz be kell jelentkezni
ok köszi müxik! :)
- A hozzászóláshoz be kell jelentkezni
Házi feladat:
Oracle szerverektől a következő SQL-el lehet lekérdezni az NLS_CHARACTERSET-et:
"SELECT value FROM v$nls_parameters WHERE parameter='NLS_CHARACTERSET'"
Ezt hogy adod be a PHP-nak mert v$nls_parameters megfeküdné a gyomrát?
:-)
- A hozzászóláshoz be kell jelentkezni
Nem idézőjelek közé teszed a lekérdezendő SQL-t, hanem mondjuk aposztróf közé és akkor nem akarja értelmezni mint változót. ($nls_parameters)
Üdv
- A hozzászóláshoz be kell jelentkezni
Vagy \$nls_parameters ha ""-k között van. :)
- A hozzászóláshoz be kell jelentkezni
Nem ér más házi feladatát megoldani! :(
- A hozzászóláshoz be kell jelentkezni
1-es leülhet! :)
'SELECT value FROM v$nls_parameters WHERE parameter='NLS_CHARACTERSET''
PHP Parse error: syntax error, unexpected T_STRING
'SELECT value FROM v$nls_parameters WHERE parameter="NLS_CHARACTERSET"'
NLS_CHARACTERSET = ""
'SELECT value FROM v$nls_parameters WHERE parameter=NLS_CHARACTERSET'
NLS_CHARACTERSET = ""
- A hozzászóláshoz be kell jelentkezni
Természetesen ki kell escape-elni az aposztrófot.
Utána akartam még javítani, csak közben hozzászólt andrej_
üdv: redman
- A hozzászóláshoz be kell jelentkezni
Érdemesebb a mysqli-t használni (pl. a mysqli_connect-nek rögtön lehet adatbázist is mondani), mert egy fokkal okosabb és a mysql_real_escape_string függvényt se spórold le a lekérdezésből. Ha php5.3 akkor pedig a mysql-nd nevű új class-t.
Ha már egy $mezonev = $_POST['mezonev'] értékadást beteszel, akkor alaszinten ellenőrizni is kellene azt a szerencsétlen POST változót (különös tekintettel példul a % jelre, hogy az ne legyen) és hogy legyen valami minimális és maximális hossza. Kliensről jövő értékben sose bízz!
A felhasználó (és a szerver) életét érdemes azzal megkönnyíteni hogy a kirívóan hibás form (pl. nincs semmi kiválasztva, üres mező) esetén javascripttel adsz vissza valami használható hibát. Ez semmiképp sem helyettesíti a szerver oldali ellenőrzést!
További tipp, hogy valamennyire kezeld a hibákat. A mutatott kódnál a $result-ra egy ilyesmi elég hasznos lehet:
if($result == true) {
if(mysql_num_rows($result) > 0 {
while...;
}
else {
print "A keresési feltételnek nincs megfelelő rekord!";
}
}
else {
print 'Hiba történt a lekérdezés végrehajtásakor!';
}
- A hozzászóláshoz be kell jelentkezni
filter_var() és filter_input() extrának.
- A hozzászóláshoz be kell jelentkezni