Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/05/2016, à 22:46

edaone

pdo n'a pas l'air de fonctionner en local[Résolu]

bonsoir
voilà mon souci
mon site fonctionne très bien chez hostinger(avec pdo) mais pdo n'a pas l'air de fonctionner chez moi en local.
pourtant en faisant par ligne de commande

php -i | grep pdo

j’obtiens

/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
pdo_mysql
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock

voici mon code php

<?php
include("header.php");
$date = date("d-m-Y");
echo'<section>
<center><h2>Laissez un petit message sympa!</h2>
<form method="POST" action="contact.php?action=insert">
<table>
<tr><td>Date:</td><td><input type="text" name="date" value="'.$date.'"></td></tr>
<tr><td>Nom:</td><td><input type="text" name="name"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>Commentaire:</td><td><textarea name="comment"></textarea></td></tr></table>
<input type="submit" value="valider"><input type="reset" value="recommencer">
</center></br>
</form>
</section>';
if($_GET["action"]=="insert")
{
$date=$_POST['date'];
$name=$_POST['name'];
$email=$_POST['email'];
$comment=$_POST['comment'];
if(empty($name) || empty($comment))
{
$message="<center>Oubli d'un champ!</br>Veuillez recommencer.</center></br>";
}
else
{
$db->exec('INSERT INTO livre(date, name, email, comment) VALUES ("'.$date.'", "'.$name.'", "'.$email.'", "'.$comment.'")');
$message='<strong>Yes !</strong>';
header ("Location: ./contact.php");
}
echo $message;
}
$req =$db->prepare( "SELECT * FROM livre");
$req->execute();
if($req->rowCount()>0)
{
while($data = $req->fetch())
{
echo'<center><table id="livre">
<tr><td>Date:</td><td>'.$data['date'].'</td></tr>
<tr><td>Nom:</td><td>'.$data['name'].'</td></tr>
<tr><td>Email:</td><td>'.$data['email'].'</td></tr>
<tr><td>Commentaire:</td><td>'.$data['comment'].'</td></tr>
</table></center></br>';
}
}
else
{
echo'<center>Pas de petit mot gentil encore :)!</center></br>';
}
include("./footer.php");
?>

l'INSERT ne fait rien ni le SELECT
une idée?

Dernière modification par edaone (Le 02/05/2016, à 16:31)


lubuntu 15.10

Hors ligne

#2 Le 01/05/2016, à 23:32

Rufus T. Firefly

Re : pdo n'a pas l'air de fonctionner en local[Résolu]

Salut,

Dans /etc/php5/apache2/php5.ini, tu as intérêt à mettre ceci dans la rubrique de gestion des erreurs :

error_reporting = E_ALL
;et un peu plus loin
display_errors = On

Puis tu redémarres apache.
Et ensuite il faut regarder aussi dans /var/log/
Il y a les log d'apache et ceux de mysql (mysql.err, mysql.log)...

On ne peut guère dire plus, d'autant que la partie pdo proprement dite est probablement dans header.php

Edit : tu devrais indenter ton code. C'est beaucoup plus lisible... Exemple :

  function select ($sql, $result_type = 'assoc') { // ou array ou row
    $rows = array ();
    $res = $this->con->query ($sql);
    if ($this->con->errno) {
      $this->sql_err ($sql);
      return $rows;
    }
    if ($res->num_rows == 0) {
      $rows [0][0] = 0;
    } else {
      $fetch = 'fetch_' . $result_type;
      while ($tmp = $res->$fetch ()) {
	$rows[] = $tmp;
      }
      $res->close();
    }
    return $rows;
  }

Dernière modification par Rufus T. Firefly (Le 01/05/2016, à 23:46)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#3 Le 01/05/2016, à 23:37

edaone

Re : pdo n'a pas l'air de fonctionner en local[Résolu]

voici pour la partie connexion au serveur

<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=mams', 'root', 'eda');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>

pour le reste j'ai php.ini et non php5.ini

Dernière modification par edaone (Le 01/05/2016, à 23:44)


lubuntu 15.10

Hors ligne

#4 Le 02/05/2016, à 16:30

edaone

Re : pdo n'a pas l'air de fonctionner en local[Résolu]

j'ai trouver il y avais une faute de frappe dans le nom dans une colonne de ma table sql. pffff quel boulet.
merci encore de vos réponses.


lubuntu 15.10

Hors ligne