Bonjour à tous ! Actuellement en formation d'intégrateur développer web j'ai un problème avec un exemple de script POO que nous donne la formation car ceci renvoie un erreur " Only variables should be passed by reference in C:\wamp64\www\cour-educatel\php\dbpost.php on line 74 c'est la ligne ou est marqué :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$stmnt->bindParam(':text', htmlspecialchars($breve->getText()));
Ce script permet d'ajouter suivant un tableau php des valeurs dans une base de donnée nommé dbpost et une table nommé breve avec trois colonne "id type int" "text type text" et "db_creation type date ".

Je vous envoie le script pour vous demander de m'aider merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
 
<?php 
 
class Breve
{
//attributs
	private $_id;
	private $_text;
	private $_dt_creation;
 
	public function __construct(array $data)
	{
		$this->setId($data['id']);
		$this->setText($data['text']);
		$this->setDt_creation($data['dt_creation']);
 
	}
//setter
	public function setId($id){
		if((is_int($id)) AND ($id >0))
		{//affecte à $_id a valeur $id passé en argument
		$this->_id = $id;
		}
	}
 
	public function setText($text){
		if (is_string($text))
		{// affecte à $_text la valeur $text passé en argument
		$this->_text = $text;
		}
	}
 
	public function setDt_creation($dt_creation){
		list($y,$m,$d) = explode("-", $dt_creation);
		if(checkdate($m, $d, $y))
		{
		// affecte à $_dt_creation la valeur $text passé en argument
		$this->_db_creation = $dt_creation;
		}
	}
 
	//getter
	public function getId(){
		//permet de récupérer la valeur de l'attribut $_id
		return $this->_id;
	}
 
	public function getText(){
		//permet de récupérer la valeur de l'attribut $_text
		return $this->_text;
	}
 
	public function getDt_creation(){
		//permet de récupérer la valeur de l'attribut $_id
		return $this->_dt_creation;
	}
 
 
}
 
class breveManager
{
	private $_db; // Instance de PDO
	public function __construct($db){
		$this->setDb($db);
	}
	public function setDb(PDO $dbh) // Un objet PDO est attendu
	{
		$this->_db=$dbh;
	}
	//insertion
	public function addBreve(Breve $breve)// Un objet Breve est attendu
	{
		$sql = 'INSERT INTO breve (text, dt_creation) VALUES (:text, :dt_creation)';
		$stmnt = $this->_db->prepare($sql);
		$stmnt->bindParam(':text', htmlspecialchars($breve->getText()));
		$stmnt->bindParam(':dt_creation',htmlspecialchars($breve->getDt_creation()));
		$stmnt->execute();
	}
}
 
//création d'un objet breve
$values = array('id' => 1, 'text' => 'contenu de la brève', 'dt_creation' => '2013-11-14');
$breve = new Breve($values);
 
//affectation de la variable $db de la connexion PDO
$db = new PDO('mysql:host=localhost;dbname=dbpost','root','');
 
//instanciation de la classe breveManager, nous créons un objet manager
//La connexion PDO est passé en paramêtre au constructeur.
$manager = new breveManager($db);
 
//appel de la méthode addBreve, nous passons un objet breve en argument.
$manager->addBreve($breve);
//le manager a ajouté la nouvelle breve, à vérifier dans la base de donnée
 
 
/*