PDO singleton
Posté : 24 avr. 2017, 11:24
Bonjour,
Je suis un tuto https://www.primfx.com/forum/programmat ... letter-530 pour créer une newletter.
Je veux utiliser une classe pdo de connexion mais j'ai quelque problème
la classe
J'ai l'erreur
Il faut hériter de la classe PDO?
Je vous remercie pour votre aide bonne journée.
Je suis un tuto https://www.primfx.com/forum/programmat ... letter-530 pour créer une newletter.
Je veux utiliser une classe pdo de connexion mais j'ai quelque problème
Code : Tout sélectionner
<!DOCTYPE html>
<html>
<head>
<title>New Letter</title>
</head>
<body>
<?php
session_start();
include_once('SPDO.class.php');
$bdd = SPDO::getInstance();
$info = $bdd->prepare('SELECT * FROM newsletter WHERE id = ?');
$info->execute(array($_SERVER['REMOTE_ADDR']));
$newsletterexist = $info->rowCount();
?>
<?php
if($newsletterexist == 0)
{
?>
<form method="POST">
<label>Adresse e-mail</label><br />
<input type="email" name="newsletter" /><br /><br />
<input type="submit" name="newsletterform" value="Envoyer"/>
</form>
<?php
}
else
{
?>
<label>Adresse e-mail</label><br />
<input type="email" name="newsletter" disabled/><br /><br />
<?php
while($news = $reqnewsletter->fetch())
{
?>
<a href="?deinscription=<?= $news['id'] ?>">Me déinscrire de la Newsletter</a>
<?php
}
?>
<?php
}
?>
</body>
</html>
Code : Tout sélectionner
<?php
class SPDO
{
/**
* Instance of SPDO
*
* @var PDO
* @access private
*/
private $PDOInstance = null;
/**
* Instance of SPDO
*
* @var SPDO
* @access private
* @static
*/
private static $instance = null;
/**
* Constante: user name of database
*
* @var string
*/
const DEFAULT_SQL_USER = 'root';
/**
* Constante: host database
*
* @var string
*/
const DEFAULT_SQL_HOST = 'localhost';
/**
* Constante: password host
*
* @var string
*/
const DEFAULT_SQL_PASS = '';
/**
* Constante: databasename
*
* @var string
*/
const DEFAULT_SQL_DTB = 'newletter';
/**
* Constructeur
*
* @param void
* @return void
* @see PDO::__construct()
* @access private
*/
private function __construct()
{
$this->PDOInstance = new PDO('mysql:dbname='.self::DEFAULT_SQL_DTB.';host='.self::DEFAULT_SQL_HOST,self::DEFAULT_SQL_USER ,self::DEFAULT_SQL_PASS);
}
/**
* make and return object spo instance
*
* @access public
* @static
* @param void
* @return SPDO $instance
*/
public static function getInstance()
{
if(is_null(self::$instance))
{
self::$instance = new SPDO();
}
return self::$instance;
}
}
?>
Code : Tout sélectionner
atal error: Call to undefined method SPDO::prepare() in C:\wamp64\www\newletter\newletter.view.php on line 11Je vous remercie pour votre aide bonne journée.