Bonjour je suis entrain de coder un logiciel avec system de connexion en vb je vien de créer la bdd je suis entrain de faire le fichier php il arrive bien a se connecter a la bdd mais quand je veux voir si le user existe sa me marque error voici le code
<?php
$action = new action;
if ($action->userExist("test"))
echo "OK";
else
echo "error";
class action
{
public $bdd;
public function action ()
{
try { $this->bdd = new PDO('mysql:host=localhost;dbname=', '', ''); }
catch (Exception $ex) { die('ERROR:ERROR_BDD_CONNECTION'); }
}
public function userExist($user)
{
$data = $this->executeQuery("SELECT * FROM Users WHERE User = ?;", array('$user'));
if (empty($data['User']))
return (false);
else
return (true);
}
private function executeQuery($query, $args, $fetch = true)
{
$response = $this->bdd->prepare($query);
$response->execute($args);
if ($fetch)
{
$data = $response->fetch();
$response->closeCursor();
return ($data);
}
else
return ($response);
}
j'ai effacer les info de connexion pour eviter d'avoir de probleme merci d'avance a se qui seront me dire d'ou vien l'erreur
Salut,
J'ai créé une BDD de test pour voir,
et moi j'ai "OK",
pas "error"
je vien de rentrer ton code et toujours erreur
Tu as copié le code de BetaWeb,
mais tu as quand même pensé à rectifier les 2 erreurs mentionnées par Carouge10 n'est-ce pas ?
array("$user")
ou array($user) tout simplement
j'ai bie rentrer les identifient
On parle bien des 3 informations manquantes ? (nom de la BDD, ton login, ton pass)
Sur PHPMyAdmin,
déconnecte toi et reconnecte toi avec le login et le pass que tu as mis, pour vérifier que ce sont les bons.
Toujours sur PHPMyAdmin tu as bien :
Dans cette table tu as une insertion qui à la valeur 'test' dans le champ 'User'.
?
Bonjour,
Il manque les parentèses lors de la création de la classe.
$action = new action();
Attention à l'utilisation des " et ' qui est différentes.
" permet de d'insérer des variables dans une chaines alors que ' ne le permet pas.
array('$user') != array("$user")
je vien de tester j'ai mis
public function userExist($user)
{
$data = $this->executeQuery("SELECT * FROM Users WHERE User = ?;", array("$user"));
if (empty($data['User']))
return (false);
else
return (true);
}
mais toujours error
il vous faut procéder au debuggage ligne par ligne.
que donne un var_dump($data); juste après l'action executeQuery??
Que donnes les logs ?
je vien de tester dit moi si c sa
public function userExist($user)
{
$data = $this->executeQuery ("SELECT * FROM Users WHERE User = ?;", array("$user"));
var_dump($data);
if (empty($data['User']))
return (false);
else
return (true);
}
le message : bool(false) error
Salut,
Tu es sûr de bien être connecté à ta base de données ?
Aussi, évite d'appeler une méthode de classe de la même façon que la classe elle-même c'est pas super propre ;)
Je pense d'ailleurs qu'il s'agit de ton __construct()
et que tu t'es trompé ;)
oui je suis bien connecté a la bdd je vais vite fait tout regarde pour voir si je trouve l'erreur
D'ailleurs, pourquoi ne pas nous donner le détail de l'erreur ? Tu utilises quoi pour débugguer ?
ba je le poste sur mon hebergeur et du coup sa maffiche juste erreur et sa devrait afficher OK
je regarde un tuto pour faire cela et le mec qui a fait le tuto lui sa marche j'ai tout inspecter le code et tout est comme lui mais lui sa marche mais pas moi
Tu as débug toutes tes variables ? TUu es sûr que tu es bien connecté à ta base de données ?
Ca ne nous en dit pas beaucoup plus .. mais à mon avis la connection à la BDD n'est pas effective, d'autant plus que tu ne renseignes NUL PART le nom de la base de données à laquelle il faut se connecter...
Essaye ceci, et pense à renseigner les infos pour te connecter à ta base de données :
$action = new Action;
if ($action->userExist("test"))
echo "OK";
else
echo "error";
class Action
{
public $bdd;
public function __construct ()
{
try {
$this->bdd = new PDO('mysql:host=localhost;dbname=', '', ''); // RENSEIGNE LES INFOS DE CONNEXION ICI !!!
} catch (Exception $ex) {
die('ERROR:ERROR_BDD_CONNECTION');
}
}
public function userExist($user)
{
$data = $this->executeQuery("SELECT * FROM Users WHERE User = ?;", array('$user'));
if (empty($data['User']))
return (false);
else
return (true);
}
private function executeQuery($query, $args, $fetch = true)
{
$response = $this->bdd->prepare($query);
$response->execute($args);
if ($fetch)
{
$data = $response->fetch();
$response->closeCursor();
return ($data);
}
else
return ($response);
}
L'autre GROS souci est que tu as vraisemblablement pompé le code sur un tutoriel sans réellement comprendre ce que tu faisais..
de mon coter j'ai bie rentrer les identifient ses juste que je les est pas publier sur le forum sinon je vien de rentrer ton code et toujours erreur