[spip-dev] SPIP & PostgreSQL

Bonjour,

Fil écrivit :

>Je devrais d'ailleurs renommer ce dernier fichier en
>ecrire/inc_db_pgsql.php3 mais je ne sais pas encore comment faire pour
>proposer en choix le type de BD lors de l'install. **

A priori il faudrait ajouter un sélecteur (bouton radio) en bas de la page
de connexion à la base. Sauf si pgSQL nécessite des "données de connexion"
d'un format différent de host/user/passwd

Quelque chose dans le genre :

«
echo "<p>Choix du logiciel de base de données : </p>\n";
//tableau des logiciels utilisables, avec colonnes "code" et "nom"
$sql-logiciels = array("mysql" => "MySql",
  "postgresql" => "PostgreSql");
//foreach necessite php 4 ou ulterieur
foreach($sql-logiciels as $code => $nom) {
   print "<label><input type=\"radio\" id=\"sql-logiciel\" name=\"sql-logiciel\" value=\"$code\">$nom</label>\n";
}

//Ce qui donne :
//
//<p>Choix du logiciel de base de données : </p>
//<label><input type="radio" id="sql-logiciel" name="sql-logiciel" value="mysql">MySql</label>
//<label><input type="radio" id="sql-logiciel" name="sql-logiciel" value="postgresql">PostgreSql</label>
»,

avec le complément en amont et en aval.
En aval : tout de suite apres, vérifier que le $HTTP["sql-logiciel"] contient une valeur présente dans $sql-logiciels, sinon échec.
Plus tard écrire le code et le nom du logiciel dans le fichier de paramètres de la bdd.

Le mardi 10 février 2004 à 16:31 (+0100), Nicolas Krebs écrivait :

>A priori il faudrait ajouter un sélecteur (bouton radio) en bas de la page
>de connexion à la base. Sauf si pgSQL nécessite des "données de connexion"
>d'un format différent de host/user/passwd
Quelque chose dans le genre :

(...)

$sql-logiciels = array("mysql" => "MySql",
  "postgresql" => "PostgreSql");

Idéalement, il faudrait construire ce tableau en vérifiant la présence
des extensions de PHP correspondantes. Cela permettrait que seul le
choix MySQL reste chez la plupart des hébergeurs gratuits et ne perturbe
pas les novices, le choix ne serait proposé que si plusieurs systèmes
existent. Si un seul est présent, on affiche juste une information, si
aucun n'est présent on affiche une erreur...

Cf ce qui a été fait avec l'extension LDAP avec
$flag_ldap = function_exists("ldap_connect");

a+