par Freezon » 14 juin 2016, 12:11
Code : Tout sélectionner
static function entiteOrdinateur($ordinateur) { try { include('./include/connect.php'); $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:dbname=glpi;host=localhost', 'root', ''); $req= $bdd->prepare('SELECT id,name,entities_id FROM glpi_computers WHERE name = :ordinateur'); //$req->execute(array($ordinateur)); $req->execute(array(':ordinateur' =>$ordinateur)); if ($TableauEntite = $req->fetch()) { return $TableauEntite['entities_id']; } else { return -1; } } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } }
par Freezon » 14 juin 2016, 11:52
$req= $bdd->prepare('SELECT id,name,entities_id FROM glpi_computers WHERE name = :ordinateur'); $req->execute(array(':ordinateur' =>$ordinateur));
par Spols » 14 juin 2016, 11:46
par Freezon » 14 juin 2016, 11:14
je suis pas un expert de PDO, mais je pense que le setAttribute doit être mis sur ta connection et non pas ta requète le message d'erreur indique bien que tu ne peux pas le mettre sur ta requète
par Spols » 14 juin 2016, 11:01
par Freezon » 14 juin 2016, 09:55
static function entiteOrdinateur($ordinateur) { try { include('./include/connect.php'); $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:dbname=glpi;host=localhost', 'root', ''); $req= $bdd->prepare('SELECT entities_id FROM glpi_computers WHERE name = :ordinateur'); //$req->execute(array($ordinateur)); $TableauEntite = $req->execute(array(':ordinateur' =>$ordinateur)); $req->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $TableauEntite = $TableauEntite->fetchColumn(); return $TableauEntite; } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } }
par Freezon » 14 juin 2016, 09:31
en effet après un execute, il faut faire un fetch... il y en a plusieurs à toi de choisir lequel correspond à ce que tu cherche
par Spols » 14 juin 2016, 08:30
par Freezon » 13 juin 2016, 17:22
$req= $bdd->prepare('SELECT entities_id FROM glpi_computers WHERE name = ?'); PDO se démerde pour les apostrophes, c'est l'avantage d'utiliser les marqueurs. http://php.net/manual/fr/pdo.prepare.php tu devrais utiliser les marqueurs nommé c'est plus clair à la lecture @+
par moogli » 13 juin 2016, 17:19
par Freezon » 13 juin 2016, 16:20
static function entiteOrdinateur($ordinateur) { try { include('./include/connect.php'); $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:dbname=glpi;host=localhost', 'root', ''); $req= $bdd->prepare('SELECT entities_id FROM glpi_computers WHERE name = "?"'); $req->execute(array($ordinateur)); $TableauEntite = $req->execute(array($ordinateur)); return $TableauEntite; } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } }
if(isset($_POST["choixOrdi"])) { $ordinateur = $_POST["choixOrdi"]; $entiteOrdinateur = gestionEntite::entiteOrdinateur($ordinateur); }
if(isset($_POST["choixOrdi"])) { echo "<br/>L'entité est " .$entiteOrdinateur."."; }
par Freezon » 13 juin 2016, 15:30
static function entiteOrdinateur($ordinateur) { include('./include/connect.php'); $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:dbname=glpi;host=localhost', 'root', ''); $req= $bdd->prepare('SELECT entities_id FROM glpi_computers WHERE name = "?"'); $req->execute(array($ordinateur)); $TableauEntite = array($ordinateur); try { while($ligne=$req->fetch()) { $TableauEntite[] = new Ordinateur($ligne["entities_id"]); } $req->closeCursor(); return $TableauEntite; } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } }
par Spols » 13 juin 2016, 15:28
par Freezon » 13 juin 2016, 15:22
alors ta requète ne renvoi pas de donnée affiche là et teste là en php myadmin
$req= $bdd->prepare('SELECT entities_id FROM glpi_computers WHERE name ="?"'); $req->execute(array($ordinateur));
par Spols » 13 juin 2016, 15:19