- Home
- Categorie
- Coding e Sistemistica
- PHP
- Funzione Php
-
Funzione Php
Salve ragazzi volevo un chiarimento.
public static function getEntityData($entityID) { $sql = "SELECT * FROM \"entity\" WHERE \"entityid\" = $entityID"; $res = pg_query(DataManager::_getConnection(),$sql); if($res && pg_num_rows($res)) { return pg_fetch_assoc($res); } die("Failed getting entity $entityID"); } return pg_fetch_assoc($res); }
Nell'if, sia $res che pg_num_rows($res) sono entrambi true allora restituisce un array associativo pg_fetch_assoc($res).
$res è una risorsa. Quindi se la risorsa punta a dei risultati restituisce true altrimenti false.
Non mi è chiaro mentre pg_num_rows($res). Dovrebbe restituire il numero delle righe oppure -1 se non c'è nessun risultato. Infatti da php.net leggo:
pg_num_rows: The number of rows in the result. On error, -1 is returned.
Quindi da pg_num_rows dovrei avere 1,2,3 ecc numeri di righe oppure -1 in caso di nessun numero di righe. Ma questo significa che Php converte in true gli eventuali numeri di riga ed in false il -1?
-
Ciao bismark2005,
lo 0 viene considerato come FALSE, mentre gli altri numeri(Anche i negativi) sono considerati come TRUE.
-1 nel tuo codice è il caso di errore, nel caso in cui le righe siano pari a 0, verrà restituito 0(Che è quindi considerato come FALSE).
-
Grazie thedarkita sei gentilissimo. Da quanto ho capito però in caso di errore -1 sarà considerato true. Quindi è come se il codice non contemplasse il caso dell'errore
-
In realtà non dovrebbero esserci casi in cui pg_num_rows($res) restituisca -1 e $res sia diverso da false. Per cui direi che vada bene cosi com'è.