Autor Zpráva
PecanCZ
Profil
Zdravím, mám tento výtah z databáze pomocí PDO:
$userNick = $db->query("SELECT nick FROM user WHERE id = '".$id."'")->fetch();
ale jakmile ji dám do funkce:
function nickById($id) {
    $userNick = $db->query("SELECT nick FROM user WHERE id = '".$id."'")->fetch();
    return $userNick['nick'];
}
ale jakmile tuto funkci zavolám, stránka mi spadne a vypíše hlášku Fatal error: Call to a member function query() on a non-object in...jak mám docílit, aby funkce query() prošla?
pcmanik
Profil
Premennaá $db je vo funkcii nedefinovaná. Máš dve možnosti ako to vyriešit, predať ju ako parameter funkcie, alebo použiť global. Ale určite ho nepoužívaj zneprehľadnuje to kód a vo všeobecnosti to nieje dobré riešenie.
Markit
Profil *
<?php
function nickById($id) {
global $db; // načítanie premennej do funkcie
    $userNick = $db->query("SELECT nick FROM user WHERE id = '".$id."'")->fetch();
    return $userNick['nick'];
}
PecanCZ
Profil
díky moc, že mě to nenapadlo hned :)
Lamicz
Profil
PecanCZ:
Co to SQL? Fuj! Když už používáš PDO tak využij prepared statements.

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: