D'une certaine manière mon instruction execute indique que l'objet n'a pas de membre "execute". Qu'est-ce qui ne va pas?php pdo préparer dans une fonction renvoie
class EdlSqliteDb
{
const SQLITE_DRIVER = "sqlite:";
var $dbh;
var $qIndex = Array();
//
function EdlSqliteDb($dsn)
{
try
{
$this->dbh = new PDO(self::SQLITE_DRIVER . $dsn);
}
catch (PDOException $e)
{
echo "Error connecting: " . $e->getMessage() . ' ' . self::SQLITE_DRIVER . $dsn;
die();
}
return;
}
//
function addQ($index,$q)
{
$this->qIndex[$index] = $q;
}
//
function PrepareQ($index)
{
try
{
$stmt = $this->dbh->prepare($this->qIndex[$index]);
}
catch (PDOException $e)
{
echo "Db Prepare Error: " . $e->getMessage();
die();
}
return $stmt;
}
//
function DbExecutePrepared($index, $arrParameters)
{
$stmt = $this->PrepareQ($index);
if ($stmt->execute($arrParameters))
{
$row = $stmt->fetch();
return $row;
}
else
{
print "<p>dbquery(): database table update execute error</p>\n";
die();
}
}
}
S'il vous plaît noter: j'ai mis '$ dbh-> setAttribute (AOP :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION)' et également exécuter dans une situation où 'PDO :: prepare()' 'faux est de retour 'sans lever d'exception. PHP ne définit pas quand vous devriez vous attendre à une exception ou 'false'. –