Erreur de connexion base de donnée

massbbc Messages postés 126 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 février 2022 - 8 juin 2012 à 12:05
eagledark Messages postés 18 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 17 janvier 2013 - 13 juin 2012 à 13:15
Bonjour je suis debutant en php et j'ai créé un petit module d'administration pour mon site. Je viens de mettre mon site en ligne seulement lorsque je lance ma page j'ai un problème de connexion à ma base de donnée. Jai fais ce module avec dreamweaver.
NB: En local je n'ai aucun problème avec ce module(sa fonctionne bien)
Merci d'avance pour votre aide.
Ci-dessous les erreurs qu'il maffiche:
[i]Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/ena/public_html/includes/common/lib/db/KT_Connection.class.php on line 71

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/ena/public_html/includes/common/lib/db/KT_Connection.class.php on line 71

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/ena/public_html/includes/common/lib/db/KT_Connection.class.php on line 92

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/ena/public_html/includes/common/lib/db/KT_Connection.class.php on line 105

Erreur:
Erreur interne.
Developer Details:
tNG_fields.getFakeRecordset:
SQL error: Error creating fake recordset:

SQL:
SELECT '' AS kt_login_id (FIELDS_FAKE_RS_ERROR)
tNG Execution Trace - VIEW
tNG_custom.executeTransaction
STARTER.Trigger_Default_Starter
tNG_custom.getRecordset
tNG_custom.getLocalRecordset
tNG_custom.getFakeRecordset* /i


Code de ma page menu.php




Administration



















AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0','width','500','height','34','src','text1','quality','high','pluginspage','http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash','bgcolor','#6EB30A','movie','text1' ); //end AC code





,

----


----,
----

[ Déconnexion]















----,


MENU,

----

,
LISTE DES MOTS DE PASSE,

----

,
LISTE DES ADMISSIONS,

----

,
LISTE DES ARTICLES,

----

,
LISTE DES TYPES CONCOURS,

----

,
LISTE DES ANNEES,

----

,
LISTE DES CYCLES





















Code de ma page KT_Connection.class.php

6 réponses

Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
8 juin 2012 à 12:23
Bonjour,

Je dirais que ta variable $connect est déclaré dans ton fichier connect.php et à mon avis dans ton script principal il ne reconnais/retrouve pas la variable.

Pour te répondre un peut mieux, il faudrait avoir le fichier connect.php.


Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
massbbc Messages postés 126 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 février 2022 1
8 juin 2012 à 15:03
Mon fichier connect.php

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_connect = "localhost";
$database_connect = "base_xxx";
$username_connect = "nom";
$password_connect = "passe";
$connect = mysql_pconnect($hostname_connect, $username_connect, $password_connect) or trigger_error(mysql_error(),E_USER_ERROR); 
?>
0
massbbc Messages postés 126 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 février 2022 1
11 juin 2012 à 16:19
Ya til quelqu'un qui pourrais m'aider SVP ???
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
12 juin 2012 à 12:23
Bonjour,

Ok, ça me semble bon pour ton connect.php

un truc qui m'as échappé :

function KT_Connection(&$connection, $databasename) {
$this->connection = &$connection;
$this->databaseName = $databasename;
}


Tu créer une méthode 'private' d'initialisation. et ton fichier connect.php ne contient que les valeurs d'initialisation.
(ça demandera peut être un ajustement de code mais somme toute assez léger.)


require_once(connect.php);

   class KT_Connection {

/**
 * The database name
 * @var string
 * @access private
 */
var $databaseName = '';

/**
 * The connection Resource ID
 * @var object ResourceID
 * @access private
 */
var $connection = null;

/**
 * Flag. what server model is.
 * @var string
 * @access private
 */
var $servermodel = "mysql";

/**
 * for ADODB compatibility
 * @var string
 * @access public
 */
var $databaseType = "mysql";

        private function initConnection() {
           if($this->connection == null) {
               $this->connect = mysql_pconnect($hostname_connect, $username_connect, $password_connect) or trigger_error(mysql_error(),E_USER_ERROR);              
           }
        }
        
/**
 * The constructor
 * Sets the connection and the database name
 * @param object ResourceID &$connection
 * @param string $databasename
 * @access public
 */
function KT_Connection(&$connection, $databasename) {
                initConnection();
$this->connection = &$connection;
$this->databaseName = $databasename;
}

/**
 * Executes a SQL statement
 * @param string $sql
 * @return object unknown
 *         true on success
 *         response Resource ID if one is returned by the wrapper function
 * @access public
 */
function Execute($sql) {
if (!mysql_select_db($this->databaseName, $this->connection)) {
return false;
}			
$response = mysql_query($sql, $this->connection);
if (!is_resource($response)) {
return $response;
} else {
$recordset = new KT_Recordset($response);
return $recordset;
}
}

/**
 * Executes a SQL statement
 * @param string $sql
 * @return mysql resource
 *         true on success
 *         response MYSQL Resource ID
 * @access public
 */
function MySQL_Execute($sql) {
if (!mysql_select_db($this->databaseName, $this->connection)) {
return false;
}	
$response = mysql_query($sql, $this->connection);
return $response;
}

/**
 * Gets the error message
 * @return string
 * @access public
 */
function ErrorMsg() {
return mysql_error($this->connection);
}

/**
 * Gets the auto-generated inserted id (if any)
 * @return object unknown
 * @access public
 */
function Insert_ID($table, $pKeyCol) {
return mysql_insert_id($this->connection);
}
}


Je ne suis pas sur que le &$ soit vraiment nécessaire dans ton cas. Mais je ne suis pas sur nom plus qu'en l'enlevant ça règle ton erreur.
Pourquoi ne pas avoir directement créer une classe qui créer/gère la connexion complète (avec sélection de la base/exécution de requête) ?



Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
massbbc Messages postés 126 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 février 2022 1
13 juin 2012 à 10:39
Merci pour ta reponse mais sa ne marche toujours pas!
0
eagledark Messages postés 18 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 17 janvier 2013 2
13 juin 2012 à 13:15
Bonjour,

Voici la syntaxe que j'ai utilisé dans ma page connect.php
Essaie de faire de même en utilisant bien
mysql_select_db($bdBase)
pour te place sur la base de données correspondante.


<?php
function Connexion() {
//initialise les variables globales

/* LOCAL */
$bdServeur = "localhost";
$bdUser = "root";
$bdMdp = "";
$bdBase = "nom_base";

mysql_connect($bdServeur, $bdUser, $bdMdp)
      or die("Erreur de connexion au serveur") ;
      
    mysql_select_db($bdBase)
      or die("Erreur sur le nom de la base de donnée") ;
}

?>

0
Rejoignez-nous