Autor Zpráva
Fastman
Profil
Zdravím,
Mám problém s SQL dotazem na databázi.
    $sql = "UPDATE `mojedatabaze`.`hraci` SET `nick` = '$nick' WHERE `hraci`.`steamid` = '$steamid'" ;
    echo'záznam zapsaný!';

hlavní je řádek
$sql = "UPDATE `stamm`.`hraci` SET `nick` = '$nick' WHERE `hraci`.`steamid` = '$steamid'" ;

Uživatel zadá nick a steamid. V databázi si vyhledá určité STEAMID a připíše ke STEAMID hodnotu nick.

Proč se tak neděje? Děkuji za odpověď.
* Když jsem to zkoušel v databázi zadat jako SQL dotaz (místo proměnných jsem dal hodnoty), tak to funguje. *
fandaa
Profil
Fastman:
Protože nevoláš funkci pro vykonání dotazu?

$sql = "UPDATE `mojedatabaze`.`hraci` SET `nick` = '$nick' WHERE `hraci`.`steamid` = '$steamid'"; ti jenom přiřadí textový řetězec do proměnné $sql.

Přidej volání mysql_query.
$sql = "UPDATE `mojedatabaze`.`hraci` SET `nick` = '$nick' WHERE `hraci`.`steamid` = '$steamid'";
mysql_query($sql);

Doporučuju ale přejít na mysqli (protože mysql je deprecated) - v zásadě to bude nejspíš spočívat v doplnění i za mysql funkce.
Fastman
Profil
fandaa:
Díky moc. Úplně jsem zapomněl na funkci mysql_query.
Nicméně jaké jsou výhody sqli pro běžného uživatele jako jsem Já?
lionel messi
Profil
Fastman:
Nicméně jaké jsou výhody sqli pro běžného uživatele jako jsem Já?
• objektové rozhranie (asi nevyužiješ)
• možnosť využívať tzv. prepared statements (zjednodušene povedané, o escapovanie sa postará sama databáza)
• funkcie pre prácu s transakciami (ako bežný užívateľ tiež veľmi nevyužiješ)
• mysql_* rozhranie bude z PHP v budúcnosti odstránené

Viac info napr. tu: Fisirovo doupě: Proč nepoužívat funkce mysql_*?
fandaa
Profil
Fastman:
Viz třeba http://stackoverflow.com/questions/548986/mysql-vs-mysqli-in-php (v angličtině).

Každopádně mysql funkce generují chybu E_DEPRECATED od verze 5.5.0, neboť budou v budoucnu odstraněny. Viz http://www.php.net/manual/en/function.mysql-connect.php.
Fastman
Profil
lionel messi:
To jako znamená, že všechny PHP kódy půjdou do kytek a budou nefunkční, protože se změní připojení k databázi (mysqli)? To je pěkně na (nechci být sprostý).
juriad
Profil
Fastman:
Toto ještě několik let nehrozí, hostingy nejspíše i pak budou nabízet starší verzi PHP, kde mysql_ bude podporované.
Ale je to dobrý způsob ze strany autorů PHP donutit programátory používat mysqli_, které má jen výhody a zapomenout na stařičké nepodporované mysql_. Chyby v mysql_ už nikdo nikdy nebude opravovat.
David Klouček
Profil
Místo mysqli bych rovnou doporučil přejít na nějakej DB layer, třeba www.notorm.com/.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: