ugrás a tartalomhoz

SQL HIBA!! Nem értem miért az..

statesz · Júl. 22. (Szo), 19.47
PHPban lefuttatom ezt az sqlt de a weboldalon ez jelenik meg:
Error: SELECT `members_balance` FROM `members` WHERE `members_id` = $MEMBERS_ID$

Valaki tud segíteni???

Szerk: member azonosítóját kiszedtem, és $MEMBERS_ID$-val helyettesítettem. Publikus felületre ne írjunk ki semmilyen user azonosítót. - BlaZe

Steam id, mivel bejelentkezés. Szóval az id az enyém és publikus. mindegy nem ez a lényeg.
 
1

Egy kod reszlet azert jo

mahoo · Júl. 22. (Szo), 20.38
Egy kod reszlet azert jo lenne...
4

A szerveren MariaDB fut

statesz · Júl. 23. (V), 11.56
$sql = "SELECT `members_balance` FROM `members` WHERE `members_id` = $uid";
7

A fenti akkor fog SQL-ben

Poetro · Júl. 23. (V), 14.40
A fenti akkor fog SQL-ben működni, ha a $uid szám. Minden egyéb esetben idézőjelbe kell tenni, és az adatbázis típusának megfelelően kódolni.
10

Uid hol/hogyan kepzodik? Nem

mahoo · Júl. 23. (V), 17.36
Uid hol/hogyan kepzodik?
Nem lehet veletlenul egy $_GET parameterbol jon ez erteke?
11

az egyik helyen igen, de nem

statesz · Júl. 23. (V), 19.39
az egyik helyen igen, de nem befolyásolja, mert sehol se megy.
2

Régen rossz, ha a weboldalon

inf3rno · Júl. 22. (Szo), 21.32
Régen rossz, ha a weboldalon be van kapcsolva a hibaüzenetek megjelenítése. Az ilyesmit logból szokás nézni. Semmi olyat nem írtál, ami alapján meg lehetne állapítani, hogy mi okozza.
3

A szerveren mariaDB fut..

statesz · Júl. 23. (V), 11.55
$sql = "SELECT `members_balance` FROM `members` WHERE `members_id` = $uid";
Ez pedig a php kód..
5

Gondolom nem hallottál még az

inf3rno · Júl. 23. (V), 13.10
Gondolom nem hallottál még az SQL injection-ről. Egyébként a kódban ránézésre nincs szintaktikai hiba. A hibakód alapján lehetne megállapítani, hogy mi okozza.
6

de ennyit ir ki az egész.

statesz · Júl. 23. (V), 14.35
de ennyit ir ki az egész. Hallottam róla, de nem egészen tudom hogy hogyan működik és hogy hogyan lehet küszöbölni. De nem is nagyon érdekel, ez itt teljesen egy API alapu beléptető rendszer, steammel kell belépni, az API kb annyit ad vissza hogy mi a link a profil képéhez meg a steam64id. Én pedig azt csekkolom hogy benne van e az adatbázisban, ha nincs, beirom. Valami miatt amikor próbálom ezzel a kóddal csekkolni hogy mennyi az egyenlege (meg egy hasonlóval hogy egyáltalán be van-e regisztrálva már) csak ennyit ír ki... Egy error és a : után az SQL kód. Azt se tudom mi a hiba. És ehhez kérek segitséget.
8

De nem is nagyon érdekel, ez

BlaZe · Júl. 23. (V), 16.57
De nem is nagyon érdekel, ez itt teljesen egy API alapu beléptető rendszer
Ne írjunk már le ilyeneket, pláne ne akkor, amikor az egész net tele van a T-Systems hasonló hozzáállásából generálódott problémákkal. Ha felhívták a figyelmed egy sebezhetőségre, annak utána KELL menni.

Hogy mi a hiba: nézz Apache/PHP/DB logokat. Valahol benne kell legyen mi történt. Amit írtál, abból semmit nem lehet mondani a hibáról. Lehet nincs DB connection, lehet nincs olyan tábla, vagy mező, amit keresel... Vagy valami tökmás.
9

Amikor ilyen válaszokat

inf3rno · Júl. 23. (V), 17.13
Amikor ilyen válaszokat olvasok, akkor valahogy elmegy a kedvem attól, hogy segítsek...
12

Tábla, mező, minden van. ha

statesz · Júl. 23. (V), 19.40
Tábla, mező, minden van. ha az INSERT INTO-t használom, működik. Viszont ez:
$sql = "SELECT * FROM members WHERE members_id=$steamidlogincheck";
meg ez:
$sql = "SELECT `members_balance` FROM `members` WHERE `members_id` = $uid";
nagyon nem akar működni. Folyton ezt az errort írja ki. Az első kód az csekkolná hogy létezik-e az az id az adatbázisban, azért más a neve. a második pedig egy $_GET-ből jön. De nem hinném hogy befolyásolja.
13

Ez továbbra se visz közelebb

BlaZe · Júl. 23. (V), 19.57
Ez továbbra se visz közelebb a megoldáshoz.

1. Mi az eredmény, ha lefuttatod ezeket a queryket a DB konzoljában?
2. Mi van a fent említett log file-okban?
3. Mi a pontos error message? Amit írtál, az csak a query.
15

lefuttattam a kódot a

statesz · Júl. 23. (V), 20.38
lefuttattam a kódot a phpmyadmin konzolban, hiba nélkül működött. Az error_log fájlban semmi nincs ezzel kapcsolatban.
$sql = "SELECT * FROM members WHERE members_id=$steamidlogincheck";
$result = $conn->query($sql);

if ($result->num_rows == 0) {
    $sql = "INSERT INTO `members` (`members_id`, `members_username`, `members_email`, `members_status`, `members_admin`, `members_password`, `members_balance`, `members_permissions_id`, `members_ip`, `members_email_code`, `members_added`, `members_password_change`, `members_activation_code`) VALUES ($steamidlogincheck, '', '', '1', '0', '', '0,00000', '', '', '', CURRENT_TIMESTAMP, NULL, '')";
    }

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
Valószínűleg akkor itt írtam el valamit? Nagyon új vagyok a dologhoz, és w3schoolsról rakosgatom össze a kódrészleteket. Ha még nincs az adatbázisban az id akkor hozzáadja, ki is írja hogy new record created successfully. Akkor a hiba meg sem jelenik. Viszont ha már visszatérő, aki már benne van az adatbázisban akkor kiírja az említett hibát és (szerencsére) nem is próbál semmit bevinni.
16

if/else

BlaZe · Júl. 23. (V), 21.42
És itt mit várnál, mit kéne kiírjon, ha már benne van az adatbázisban? "New record created successfully", vagy "Error: ..."? Mást ugyanis nem bír szegény PHP kiírni...
17

hát ha created akkor ki is

statesz · Júl. 24. (H), 01.06
hát ha created akkor ki is irja. Ez a w3schoolson volt. És hozzá is adja. Csak lekérni nem kéri le :((
18

Lekéri

T.G · Júl. 24. (H), 06.37
Lekéri, csak utána tévesen kiírod, hogy hiba van. Az a hiba, hogy kiírod, hogy hiba.

Ha van adat, akkor mind a 4. sorban, mind a 12. sorban lévő feltétel hamis lesz.

BlaZe kérdése viszont elég egyértelmű, szerinted mit kellene kiírnia, mi lenne a helyes kimenete ennek a scriptnek?
19

hár örülnék ha a balancot

statesz · Júl. 24. (H), 14.19
hár örülnék ha a balancot írná ki...
14

Próbáld

inf3rno · Júl. 23. (V), 20.34
Próbáld `members`.`members_balance` FROM `members`-el, hátha más szintaxist szeret ez a db. Volt valahol itt egy cikk a debuggolás alapjairól. Olvasd el! Ja bocs, tudom te nem értesz hozzá, de nem is nagyon érdekel...