Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Object to string

PHP PHP Object to string American English version English version

Aktivity (1)
Avatar
roverjedla
Člen
Avatar
roverjedla:20.4.2016 20:26

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.4.2016 20:26
Avatar
Jindřich Máca
Tým ITnetwork
Avatar
Jindřich Máca:21.4.2016 13:19

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.4.2016 13:19
Avatar
roverjedla
Člen
Avatar
Odpovídá na Jindřich Máca
roverjedla:21.4.2016 19:08

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.4.2016 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.