Avatar
roverjedla
Člen
Avatar
roverjedla:

Ahoj,

mám problém s sql příkazem, který vypadá asi takto:

"SELECT randomString FROM users WHERE email='" . $email . "'";

jednoduše potřebuji vytáhnout hodnotu "randomString" z databáze a poté ji vypsat (později se bude ještě s něčím porovnávat, a bude tedy také potřeba mít to v podobě stringu).

Tady mi ale nastává problém, jelikož při porovnávání hodnoty vytažené z databáze s nějakou jinou mi php hází chybovou hlášku: Catchable fatal error: Object of class mysqli_result could not be converted to string in

Potřebuji tento výsledek převést na string ale podle hlášky to není možné, tak tomu příliš nerozumím.

Budu rád za všechny rady a za praktické ukázky kódu, Díky.

 
Odpovědět 20. dubna 20:26
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Jindřich Máca:

Ahoj, na začátek si Tě dovolím citovat:

tak tomu příliš nerozumím

Opravdu je vidět, že používáš něco čemu příliš nerozumíš. Pokud totiž provedeš dotaz nad databází, tak nedostaneš přímo text, ale objekt třídy mysqli_result - http://php.net/…i-result.php. Když se pak podíváš do výše uvedeného odkazu, tak zjistíš, že aby jsi získal jeho obsah, musím nad tímto objektem provést další operace, ať už volaní metod nebo iteraci. No a už jsme doma, protože přímé vypsání tohoto objektu, který nemá definovanou metodu __toString(), logicky způsobí chybu, kterou dostáváš.

Další věc je, že kód, který jsi sem uvedl není s velkou pravděpodobností moc bezpečný. Je totiž náchylný na tzv. SQL Injection. Takže důrazně doporučuji přečíst si http://www.itnetwork.cz/…on-a-obrana/

Na závěr doplním, že jestli Ti něco z předchozího nedává úplně smysl, chtěl by jsi vidět nějaké ty praktické ukázky kódu apod., podívej se na seriál o práci s databázemi v PHP - http://www.itnetwork.cz/…zim-tutorial od uvedeného dílu dále. ;)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 21. dubna 13:19
Avatar
roverjedla
Člen
Avatar
Odpovídá na Jindřich Máca
roverjedla:

Ahoj,

to, že musím provést nějakou operaci, která mi to převede na string jsem věděl, jen jsem nějak nedohledal jakou - resp. jsem nepochopil jak fungují. Vím, že kód, který jsem publikoval je nebezpečný, ale toto bylo pouze zkušební. Až budu mít vše funkční, tak to předělám, takto se mi kód rychleji předělává a lépe se v něm orientuji.

Každopádně díky za radu, už jsem na to přišel a nyní vše funguje.

 
Nahoru Odpovědět  +1 21. dubna 19:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.