Beispiel #1
0
/**
 * Rècupère une ligne de résultat
 *
 * Récupère la ligne suivante d'une ressource de résultat
 * 
 * @param Ressource $r     Ressource de résultat (issu de sql_select)
 * @param string $t        Structure de résultat attendu (défaut ASSOC)
 * @param string $serveur  Nom de la connexion
 * @param bool $requeter   Inutilisé
 * @return array           Ligne de résultat
 */
function spip_sqlite_fetch($r, $t = '', $serveur = '', $requeter = true)
{
    $link = _sqlite_link($serveur);
    $is_v3 = _sqlite_is_version(3, $link);
    if (!$t) {
        $t = $is_v3 ? SPIP_SQLITE3_ASSOC : SPIP_SQLITE2_ASSOC;
    }
    $retour = false;
    if ($r) {
        $retour = $is_v3 ? $r->fetch($t) : sqlite_fetch_array($r, $t);
    }
    // les version 2 et 3 parfois renvoie des 'table.titre' au lieu de 'titre' tout court ! pff !
    // suppression de 'table.' pour toutes les cles (c'est un peu violent !)
    // c'est couteux : on ne verifie que la premiere ligne pour voir si on le fait ou non
    if ($retour and strpos(implode('', array_keys($retour)), '.') !== false) {
        foreach ($retour as $cle => $val) {
            if (($pos = strpos($cle, '.')) !== false) {
                $retour[substr($cle, $pos + 1)] =& $retour[$cle];
                unset($retour[$cle]);
            }
        }
    }
    return $retour;
}