Bonjour, j'ai crée une fonction qui exécute mes requêtes sur les tables de la BDD avec de paramètres. En local, tous se passe bien mais lorsque j'envoi mes fichiers sur le serveur j'ai ce message d'erreur:
=(fonction prepare() appliquée sur un non objet).Fatal error: Call to a member function prepare() on a non-object in /
Je n'arrive à dégguer le script.
Script php fonction
Appel de la fonction
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 function query($table, $champ = null, $filtre = null, $valFiltre = null, $idArt, $order = null, $premier = null, $dernier = null){ //Incluson de la connexion à la BDD require('dbConnect/config.php'); //Si aucun chacun champ n'es défni on affiche tous if((isset($champ)) && ($champ == "")){ $champ = '*'; } //On prepare la requete de base $sql = "SELECT ".$champ." FROM ".$table.""; //Si une clause where a ete créer alors...... if($filtre != ""){ $sql .= " WHERE statut = '1' AND corbeille = '0 '"; } if(($filtre != null) && ($filtre != "")){ $sql .= " AND ".$filtre." = ".$valFiltre; } if($order != "" && $order != null){ $sql .= " ORDER BY ".$idArt." ".$order; } if(($premier != null) || ($dernier != null)){ $sql .= " LIMIT ".$premier.", ".$dernier; } //On execute la requête $sql = $connect_db->prepare($sql); //prepare pas total:calim2: $sql->execute(); //On retourne les données sous forme de tableau while($data = $sql->fetch(PDO::FETCH_OBJ)){ $tb[] = $data; } return $tb; }
Le script n'est très fin mais j'ai un gain de temps avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $table = "ma_table"; $champ = "*"; $filtre = "idFiltre"; $valFiltre = "valeur_filtre"; $idArt = "id_ma_table"; $order = "DESC"; $premier = 0; $dernier = 1; $data1erActu = query($table, $champ, $filtre, $valFiltre, $idArt, $order, $premier, $dernier);
Script de connexion à la BDD
Comment parfaire ma fonction?
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 <?php //Connexion à la base de données try { $dns = 'mysql:host=localhost;dbname=bd_name'; $user = 'root'; $password = ''; $connect_db = new PDO ($dns, $user, $password); $connect_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $option = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ); } catch (Exception $e) { echo "<h1>Connection au serveur impossibe, erreur:".$e->getMessage()."</h1>"; die(); } ?>
Partager