ugrás a tartalomhoz

"Access denied for user 'ODBC'@'localhost' (using password: NO)" már létrehozott kapcsolaton

Sovereign · 2007. Már. 9. (P), 08.19
Üdv mindenkinek!

Egy érdekes problémával találkoztam és ebben szeretném a segítségeteket kérni.
Adatbázisból listázok. A script elején nyitok egy adatbázis kapcsolatot - mint mindig - include_once('server.php') - Ebben vannak a paraméterek -

<?php
$kapcsolat = mysql_connect($host,$user,$pass)
             or die ('Hiba! '.mysql_error($kapcsolat));

mysql_select_db($db,$kapcsolat) or die ('Hiba! '.mysql_error($kapcsolat)); 
70 sorral lentebb van egy feltétel:
<?php
if(!empty($kategoria) and $kategoria !== 'Kérem válasszon')
{
  $query = "SELECT `kategoria`, `gyarto`, `tipus`, `darab` FROM `termekek`                          WHERE `kategoria` LIKE '$kategoria'";
  $result = mysql_query($query);
}
és ezt a hibát dobja ki:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\AppServ\www\Szakdolgozat\admin_termekek.php on line 75

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\AppServ\www\Szakdolgozat\admin_termekek.php on line 75


De ha a feltételen belül nyitom a kapcsolatot működik.
Azért kiirattam a $kapcsolat értéket mind az elején mind a feltételben. Mind a kétszer kíírja szépen, hogy: Resurce id#3

Remélem vki tudja mi a baj.
 
1

re: mi lehet a probléma

memento · 2007. Már. 10. (Szo), 01.30
1. ellenőrizd le jok-e a parameterek mysql_connect-nek (host, user, pass, db_nev)
2. mysql_query-nek megkell adni megegy parametert nevezetesen a $kapcsolat-ot
bovebben: http://hu.php.net/manual/hu/function.mysql-query.php
(egyebkent szerintem okosabb makrokat hasznalni konstansokhoz, elvegre arra valok)
2

válasz

Sovereign · 2007. Már. 10. (Szo), 06.31
paraméterek biztos, hogy jók.
a kapcsolat pusztán opcionális paraméter. Anélkül is remekül működik. De mellé írtam. Akkor azt mondja, hogy a 3 nem valós mysql erőforrás azonosító.
3

tehát nincs kapcsolat

Hojtsy Gábor · 2007. Már. 10. (Szo), 10.54
Akkor megvan a válasz. Nincs kapcsolatod. Ha rákeresel az ODBC-s hibaüzenetre, meg fogod találni, hogy ez az alap MySQL felhasználónév/jelszó páros, amivel csatlakozni próbál, ha nincs kapcsolat.

Amikor a mysql_query()-t meghívtad a kapcsolat azonosító nélkül, akkor nem talált legutóbb nyitott kapcsolatot (amit az opcionális paraméter elhagyása miatt keresett), és próbált egyet nyitni az alapbeállításokkal. Ez persze nem sikerült.

Most, amikor beraktad a kapcsolat azonosítódat, kiderült, hogy az nem kapcsolat azonosító. Valami más erőforrás van abban a változóban (a Resource #3 még nem garantálja, hogy az kapcsolat azonosító, a get_resource_type() tudja megmondani, hogy tényleg micsoda), vagy már lezártad azt a kapcsolatot.