Call to a member function prepare() on a non-object
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:
Citation:
Fatal error: Call to a member function prepare() on a non-object in /
=(fonction prepare() appliquée sur un non objet).
Je n'arrive à dégguer le script.
Script php fonction
Code:
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;
} |
Appel de la fonction
Code:
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); |
Le script n'est très fin mais j'ai un gain de temps avec:lol:
Script de connexion à la BDD
Code:
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();
}
?> |
Comment parfaire ma fonction?