Bonjour,
j'ai un problème de connexion à Mysql avec cette erreur :
mon site était sur serveur perso que j'ai arrêté pour passer chez OVh, si ca peut aider.
Fatal error: Call to a member function quote() on a non-object in ligne 22.
J'ai vu sur le forum des réponses ( sur PDO) mais je ne trouve pas la solution.

Quelqu'un peut m'aider à le résoudre ?
Mes fichiers de functions et variables

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
<?php
@session_start();
require_once('vars.php');
require_once('mail/htmlMimeMail5.php');
try {
	$database = new PDO('mysql:host='.$db_vars['server'].';dbname='.$db_vars['database'], $db_vars['login'], $db_vars['password']);
} catch(Exception $e) {
	//ne fait rien
}
try{
	//on met à jour le user_logged
	if(isset($_SESSION['user'])) {
		$update_query = "UPDATE ".$cfg['db_prefix']."affilies SET aff_logged = ".time()." WHERE aff_id = ".$database->quote($_SESSION['user']['aff_id'])." LIMIT 1";
		if(!$database->exec($update_query)) throw new Exception('Erreur lors de la mise à jour de la session.');
	}
} catch(Exception $e) {
}
function login($login, $pass) {
	global $cfg, $database, $_services, $_ventes;
	$get_user_query = "SELECT * FROM ".$cfg['db_prefix']."affilies WHERE aff_login = ".$database->quote($login)." AND aff_pass = ".$database->quote(sha1($pass))." LIMIT 1";
	$get_user = $database->query($get_user_query)->fetch();
	if(empty($get_user['aff_id'])) throw new Exception('L\'identifiant et/ou le mot de passe est incorrect.');
	$_SESSION['user'] = $get_user;
	//on update user_logged
	$update_query = "UPDATE ".$cfg['db_prefix']."affilies SET aff_logged = ".time()." WHERE aff_id = ".$database->quote($get_user['aff_id'])." LIMIT 1";
	//echo $update_query;
Les variables de connexion :
Tout est correctement rempli

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
<?php
 
//configuration de la base de données
$db_vars = array('server' => 'mysql51-86','database' => 'YYYY', 'login' => 'YYYY', 'password' => 'YYYY');
 
 
 
//configuration globale du site
$cfg = array();
$cfg['db_prefix'] = 'YYY_';
$cfg['timeout'] = (60*5);
$cfg['admin_mail'] = 'contact@YYYfr';
$cfg['contact_mail'] = 'contact@YYY.fr)';
$cfg['actu_lifetime'] = 86400 * 365;
$cfg['actu_image_width'] = 120;
$cfg['actu_image_height'] = 120;
$cfg['aff_image_width'] = 150;
$cfg['aff_image_height'] = 150;
$cfg['com_image_width'] = 250;
$cfg['com_image_height'] = 250;
$cfg['part_image_width'] = 250;
$cfg['part_image_height'] = 250;
$cfg['big_image_width'] = 800;
$cfg['big_image_height'] = 600;
$cfg['site_dir'] = '/homez.579/www/YYYY/';  CHEMIN vers OVH
$cfg['site_url'] = 'http://www. YYYY.fr/';
 
//définition des flags pour les champs 'services'  des affiliés
$_services = array();
$_services[] = 'carte_fidelite';
 
//définition des noms pour les champs 'services' 
$services_name = array();
$services_name[] = 'Carte de fidélité';

Je ne sais pas pourquoi ce n'est pas reconnu
Merci de votre aide si vous pouvez


Résolu :
chez OVH la connexion mysql demande la Base et sa formule Pro MUTu BDB

ici il manquait le renseignement : $db_vars = array('server' => 'mysql51-86.bdb',

simple mais de quoi chercher des heures :