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.
J'ai vu sur le forum des réponses ( sur PDO) mais je ne trouve pas la solution.Fatal error: Call to a member function quote() on a non-object in ligne 22.
Quelqu'un peut m'aider à le résoudre ?
Mes fichiers de functions et variables
Les variables de connexion :
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;
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 :![]()
Partager