depuis php je peut seulement lire ma base de données mais pas écrire
Bonjour,
Je viens de ressortir un vieux site web que j'avais développé il y a 3 ans dans le cadre d'un projet scolaire. Mon objectif est de le faire tourner sur une machine virtuelle linux car je formate souvent mes ordinateurs et c'est un bon moyen de pouvoir le faire tourner facilement sans passer du temps à tout réinstaller.
Il a été développé en html/css/php/postgresql
Alors voici ce que j'ai fais. J'ai installer un ubuntu 12.04. J'ai installé lappstack. J'ai démarré apache et postgresql:
Code:
1 2
| ~/lappstack-5.3.15-0/ctlscript.sh start apache
~/lappstack-5.3.15-0/ctlscript.sh start postgresql |
J'ai été sur 127.0.0.1:8080 et ça fonctionne. J'ai mis mon site web dans ~/lappstack-5.3.15-0/apache2/htdocs.
Ensuite j'ai créé une base de données et je l'ai contrôlé: elle a l'air d'être bonne.
Code:
1 2 3 4 5 6
| cd ~/lappstack-5.3.15-0/postgresql/bin
./createuser -P cedrix
./createdb cedrix_bd01 --username cedrix
./psql cedrix_bd01 --username cedrix < ~/Documents/GIS3_sources_projetBD_cedricBettinger/createDB.sql
./psql cedrix_bd01 --username cedrix
\d |
J'ai été dans 127.0.0.1:8080/phpPgAdmin mais quand je tente de me connecter au serveur posgresql avec le pseudo indiqué 'administrator' j'ai un 'login error'. Bref je me suis dit que je vais me passer de phpPgAdmin.
J'ai ensuite lancé mon site web:
127.0.0.1:8080/GIS3_sources_projetBD_cedricBettinger
Pendant un moment j'ai cru que ça allé marcher. Car j'ai été dans une page pour ajouter un employé. Cette page charge des données dans la base de données et ça a marché. Voici un extrait du code php de chargement dans la base de données qui fonctionne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <tr>
<td><label id="idequipe for="idequipe">Équipe</label></td>
<td> <select name="idequipe" ">
<?php //On va propose toutes les équipes présentes dans notre base de données dans une liste déroulante
$connect = pg_connect("host=postgresql.alwaysdata.com user=cedrix password=xxxxxx dbname=cedrix_bd01");
if(!$connect){
echo "Impossible de se connecter à la base de données\n";
exit;
}
$requet = "SELECT * FROM Equipe";
if($result = pg_query($requet)){
while($ligne = pg_fetch_array($result)){
$idequipe = $ligne['idequipe'];
$nomequipe = $ligne['nomequipe'];
echo "<option value=$idequipe>$nomequipe</option>";
}
}
?>
</select>
</td>
</tr> |
Par contre mon code qui écrit dans la base de données plante à tout les coups alors qu'avec le programme psql mes requêtes fonctionnent:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
$nomequipe = pg_escape_string(htmlspecialchars($_POST["nomequipe"]));
$connect = pg_connect("host=postgresql.alwaysdata.com user=cedrix password=xxxxxx dbname=cedrix_bd01");
if(!$connect){
echo "Impossible de se connecter à la base de données\n";
exit;
}
$requet = "INSERT INTO Equipe(nomequipe, idemployechef)
VALUES ('$nomequipe', NULL)";
if(pg_query($requet)){
echo "L'équipe $nomequipe a été ajouté";
}else{
echo "ERREUR : L'équipe $nomequipe n'a pu être ajouté";
}
?> |
Quelqu'un sait d'où pourrait venir le problème?
Merci d'avance