2010-07-10 3 views
1

Je suis très nouveau pour PHP, jusqu'à présent, je l'ai utilisé le schéma suivant pour se connecter à un serveur de base de données et sélectionnez une base de données:Comment modifier ce fichier de connexion de base de données PHP?

mysql_connect("host","username","password"); 
mysql_select_db("databaseName"); 

Mais maintenant, je suis en utilisant le script de quelqu'un d'autre et il semble être écrit en style orienté objet. Je ne sais pas comment modifier le fichier de connexion avec mes propres paramètres. Supposons que mon hôte est « localhost », le nom d'utilisateur est « root », le mot de passe est « 123 », et la base de données pour sélectionner est « myDatabase » où que je placer dans le script suivant ?:

<?php 
/** 
* MySQL Database Connection Class 
* @access public 
* @package SPLIB 
*/ 
class MySQL { 
    /** 
    * MySQL server hostname 
    * @access private 
    * @var string 
    */ 
    var $host; 

    /** 
    * MySQL username 
    * @access private 
    * @var string 
    */ 
    var $dbUser; 

    /** 
    * MySQL user's password 
    * @access private 
    * @var string 
    */ 
    var $dbPass; 

    /** 
    * Name of database to use 
    * @access private 
    * @var string 
    */ 
    var $dbName; 

    /** 
    * MySQL Resource link identifier stored here 
    * @access private 
    * @var string 
    */ 
    var $dbConn; 

    /** 
    * Stores error messages for connection errors 
    * @access private 
    * @var string 
    */ 
    var $connectError; 

    /** 
    * MySQL constructor 
    * @param string host (MySQL server hostname) 
    * @param string dbUser (MySQL User Name) 
    * @param string dbPass (MySQL User Password) 
    * @param string dbName (Database to select) 
    * @access public 
    */ 
    function MySQL ($host,$dbUser,$dbPass,$dbName) { 
     $this->host=$host; 
     $this->dbUser=$dbUser; 
     $this->dbPass=$dbPass; 
     $this->dbName=$dbName; 
     $this->connectToDb(); 
    } 

    /** 
    * Establishes connection to MySQL and selects a database 
    * @return void 
    * @access private 
    */ 
    function connectToDb() { 
     // Make connection to MySQL server 
     if (!$this->dbConn = @mysql_connect($this->host, 
             $this->dbUser, 
             $this->dbPass)) { 
      trigger_error('Could not connect to server'); 
      $this->connectError=true; 
     // Select database 
     } else if ([email protected]_select_db($this->dbName,$this->dbConn)) { 
      trigger_error('Could not select database'); 
      $this->connectError=true; 
     } 
    } 

    /** 
    * Checks for MySQL errors 
    * @return boolean 
    * @access public 
    */ 
    function isError() { 
     if ($this->connectError) 
      return true; 
     $error=mysql_error ($this->dbConn); 
     if (empty ($error)) 
      return false; 
     else 
      return true; 
    } 

    /** 
    * Returns an instance of MySQLResult to fetch rows with 
    * @param $sql string the database query to run 
    * @return MySQLResult 
    * @access public 
    */ 
    function query($sql) { 
     if (!$queryResource=mysql_query($sql,$this->dbConn)) 
      trigger_error ('Query failed: '.mysql_error($this->dbConn). 
          ' SQL: '.$sql); 
     return new MySQLResult($this,$queryResource); 
    } 
} 

/** 
* MySQLResult Data Fetching Class 
* @access public 
* @package SPLIB 
*/ 
class MySQLResult { 
    /** 
    * Instance of MySQL providing database connection 
    * @access private 
    * @var MySQL 
    */ 
    var $mysql; 

    /** 
    * Query resource 
    * @access private 
    * @var resource 
    */ 
    var $query; 

    /** 
    * MySQLResult constructor 
    * @param object mysql (instance of MySQL class) 
    * @param resource query (MySQL query resource) 
    * @access public 
    */ 
    function MySQLResult(& $mysql,$query) { 
     $this->mysql=& $mysql; 
     $this->query=$query; 
    } 

    /** 
    * Fetches a row from the result 
    * @return array 
    * @access public 
    */ 
    function fetch() { 
     if ($row=mysql_fetch_array($this->query,MYSQL_ASSOC)) { 
      return $row; 
     } else if ($this->size() > 0) { 
      mysql_data_seek($this->query,0); 
      return false; 
     } else { 
      return false; 
     } 
    } 

    /** 
    * Returns the number of rows selected 
    * @return int 
    * @access public 
    */ 
    function size() { 
     return mysql_num_rows($this->query); 
    } 

    /** 
    * Returns the ID of the last row inserted 
    * @return int 
    * @access public 
    */ 
    function insertID() { 
     return mysql_insert_id($this->mysql->dbConn); 
    } 

    /** 
    * Checks for MySQL errors 
    * @return boolean 
    * @access public 
    */ 
    function isError() { 
     return $this->mysql->isError(); 
    } 
} 
?> 

Répondre

1

Les paramètres sont pas dans ce fichier. Recherchez un fichier de configuration ou un fichier qui crée cet objet.

S'il n'y a pas de fichier de configuration et que vous n'avez pas de fichier créant cet objet, vous devrez le faire manuellement. Je ne pense pas que ce soit une bonne pratique difficile, ce serait mieux si vous créez un fichier de configuration qui retourne ces paramètres.

+0

Ahh moi stupide, je vois qu'il ya un autre fichier pour que le nom de ce qui était pas très intuitive. Merci. – Jen

0

Vous transmettre ces données tout en créant l'instance de classe MySQL:

$db = new MySQL("host", "user", "pass", "name"); 
1

Qu'est-ce que vous avez posté est deux classes. Une partie du but d'une classe est d'extraire les valeurs réelles du code. Par conséquent, vous allez vouloir vous connecter à la base de données en créant une "instance" de la classe. Cela pourrait ressembler à:


$dbConnection = new MySQL('localhost', 'root', '123', 'myDatabase'); 

Après cette étape, vous pouvez faire des choses comme:


$result = $dbConnection->query("SELECT * FROM `blah`"); 
Questions connexes