ugrás a tartalomhoz

MySQL hiba ('Unknown column in where clause')

Anonymous · 2006. Júl. 10. (H), 21.55
Hali!

Van egy problémám nevezetesen a következő:

function tabla_sorkeres($tabla, $mi, $mennyi)
{
$f_result = mysql_query("SELECT * FROM $tabla WHERE $mi = $mennyi") or die(mysql_error());
return mysql_fetch_array($f_result);
}

[...]

$login_user = $_POST[login_user];
$login_pass = $_POST[login_pass];
if(isset($login_user) && isset($login_pass) && $login_user != "" && $login_pass != ""){
   $login_data = tabla_sorkeres(users, username, $login_user);
   if($login_pass == $login_data[password]){

[...]


Ugye ellenőrizni akarnám, hogy a begépelt felhasználó + jelszó helyes-e.
És ekkor kapom azt a hibaüzenetet, hogy: Unknown column 'user' in 'where clause'. A function máshol prímán működik, azzal nincs baj. Ha valaki tudja mi a probléma, lécci írja már le:(
 
1

csak egy tipp :)

Gal Kristof · 2006. Júl. 10. (H), 22.18
pl mi lenne ha macskakörmök közé tennéd a függvény hívásánál a 2 szót (táblanév és oszlopnév)? :) vagy pl mért nem értelmezed a hibaüzenetet? unkown column in... azt jelenti, hogy ismeretlen oszlopot adtál meg a where rész után, ebből azért el lehetne indulni a nyomozásban! sok sikert! :)
2

még mindig

Anonymous · 2006. Júl. 10. (H), 23.11
Azért nem tettem idézőjelbe a tábla- és oszlopnevet, mert - mint azt le is írtam - működik az egész oldalon mindenhol máshol.. (Egyébként ilyen pótcselekvésképpen kipróbáltam és ugyanúgy rossz.) A hibaüzenetet meg próbálnám értelmezni, de a függvényben a 'username' oszlopban kéne keresnie, ami pedig 100% hogy létezik (és fel is van töltve). Ehelyett pedig a $login_user ('user') nevű oszlopban keres =\
3

Idézőjelek

Török Gábor · 2006. Júl. 11. (K), 04.47
Attól még, hogy máshol működik, nem jelenti, hogy helyes is. Egy stringet mindenféleképpen idézőjelek közé kell zárni PHP-ben, a fennebbi kódban akár konstansként is lehetne értelmezni. (Ez érvényes a függvényekben átadott paraméterekre és a tömb kulcsokra is.) A hiba mint jelzett abból fakad, hogy egy nemlétező oszlopot keres. Esetleg a kódod egy másik részében keletkezik ez a hiba. Még egy opciónális hiba, hogy az SQL query-dben a $mennyi változót zárd körül aposztróffal, lévén a $mennyi-be előfordulhat, hogy string kerül, és így az SQL nyelvtana megköveteli.