Bonjour,

Je vois partout qu'il faut utiliser la fonction mysql_real_escape_string pour insérer des données dans une base MySQL.

J'ai un problème de compréhension de cette fonction car je ne suis pas certain de sa fonction, mais surtout d'implémentation car j'ai un message d'erreur où que je la positionne dans mon code.

Mon code est structuré ainsi. C'est basé sur un ou deux tuto de ce site.

classe Model_Template :
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
 
abstract class Model_Template
{
	protected $selectAll;
	protected $selectById;
 
	public function __construct()
	{
	}
 
	public function getAll()
	{
		$this->selectAll->execute();
		return $this->selectAll->fetchAll();
	}
 
	public function getById($id)
	{
		$this->selectById->execute(array($id));
		return $this->selectById->fetchAll();
	}
 
	public function delete($id)
	{
		$this->deleteOne->execute(array($id));
	}
 
}
classe Model_Toto :
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
 
class Model_Toto extends Model_Template
{
 
	public function __construct()
	{
		parent::__construct();
 
		$sql =  'INSERT INTO toto (
				champ1)
			VALUES (
				?)
		';
		$this->insertOne = Controller_Template::$db->prepare($sql);
 
	public function insert(
		$champ1)
	{
		$this->insertOne->execute(array(
			($champ1)
		));
	}
Pour insérer des données, j'appelle la fonction insert().

J'ai toujours une erreur lorsque je veux positionner mysql_real_escape_string quelque part, que ce soit dans la classe qui appelle insert(), ou dans la fonction insert().

Globalement, l'erreur est que je n'ai pas de droit d'accès à la base !

A votre avis, comment faire, si l'utilisation est encore utile dans ma config ?

Merci