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
@+
$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
@+
Je vois bien ce que vous dites, mais je ne comprend pas comment l'utiliser dans mon cas, et je ne vois pas pourquoi le mettre dans un while étant donné que je veux pour une seule ligne, avoir l'entité. Je ne comprend pas comment l'utiliser...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
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 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());
}
}Je m'en suis rendu compte et en le mettant sur $bdd, aucune erreur ne s'affiche donc le soucis n'est pas sur ma requête ..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
Code : Tout sélectionner
$req= $bdd->prepare('SELECT id,name,entities_id FROM glpi_computers WHERE name = :ordinateur');
$req->execute(array(':ordinateur' =>$ordinateur));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());
}
}