Autor | Zpráva | ||
---|---|---|---|
jiricz Profil |
#1 · Zasláno: 28. 6. 2020, 19:53:02
Zdravím a předem se omlouvám zda-li to již v nějakém vláknu je, ale nedohledal jsem.
Upravuji teď část vnitřku našeho webu kde máme jednoduchou evidenci a přepisuji metodu mysql na mysqli. při používání mysql jsem na při potřebě vyhledávání jedné konkrétní hodnoty v databázi používal toto: $xxx = @mysql_result(mysql_query("SELECT email FROM zakaznik WHERE id_zakaznik='".$idzakaznik."'"),0); nyní bych potřeboval toto uzpůsobit pro mysqli, ale zatím jsem nedohledal nejvoděnější řešení. Existuje vůbec nějaká varianta ideálně nějakého takovéhoto zápisu? |
||
blaaablaaa Profil |
#2 · Zasláno: 28. 6. 2020, 21:54:53
Co takhle?
$email = $mysqli->query("SELECT email FROM zakaznik... ")->fetch_object()->email; V tvém skriptu ještě chybí ošetření proti sql injection. |
||
David_0 Profil * |
Třeba má ošetření o řádek výš, jen to sem nenapsal. (Ale nevěřím tomu)
$idzakaznik = intval($_GET['idzakaznik']; P.S. Nemůžu editovat. Vypadla mi závorka. |
||
jiricz Profil |
#4 · Zasláno: 29. 6. 2020, 17:12:28
Ošetření proti sql injection mám zahrnuto - nekopíruji zde celou část kódu a také ne přesný zápis ale jen jako "vzor".
Nicméně používám procedurální způsob zápisu ne OOP tudíž řešení od pana blaaablaaa pro mne není vhodné. Aktuálně používám tento způsob - opět píšu vzorově. $result = mysqli_query($conn, "SELECT * FROM...."); while($row = mysqli_fetch_assoc($result)) { $email = $row['email']; } Jde však o zápis do více řádků - řeším to spíše z hlediska jednoduchosti.... |
||
blaaablaaa Profil |
#5 · Zasláno: 30. 6. 2020, 07:31:02
jiricz:
Pak se stačí podívat do manuálu a můj příklad podle toho upravit. Je zbytečné u získávání jedné hodnoty používat cyklus. |
||
David_0 Profil * |
#6 · Zasláno: 30. 6. 2020, 07:47:17
Nevím, co přesně chceš. Pokud je to vyloženě zápis na jeden řádek, tak je to takto:
$email = mysqli_fetch_assoc(mysqli_query($conn, 'SELECT email FROM zakaznik WHERE id_zakaznik = 123'))['email']; 2. Já osobně bych spíš dal přednost rozdělení na více řádků. Nejdříve si uložit $result z query a pak $row z fetch_assoc. Můžeš pak kontrolovat jestli ten $result není false, pokud nepoužíváš výjimky. |
||
Časová prodleva: 4 roky
|
0