Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编辑此PHP数据库连接文件?_Php - Fatal编程技术网

如何编辑此PHP数据库连接文件?

如何编辑此PHP数据库连接文件?,php,Php,我对PHP非常陌生,到目前为止,我一直在使用以下模式连接到数据库服务器并选择数据库: mysql_connect("host","username","password"); mysql_select_db("databaseName"); 但现在我正在使用其他人的脚本,它似乎是用面向对象的风格编写的。因此,我不知道如何使用自己的设置编辑连接文件。假设我的主机是“localhost”,用户名是“root”,密码是“123”,要选择的数据库是“myDatabase”,我在下面的脚本中将它们放在哪

我对PHP非常陌生,到目前为止,我一直在使用以下模式连接到数据库服务器并选择数据库:

mysql_connect("host","username","password");
mysql_select_db("databaseName");
但现在我正在使用其他人的脚本,它似乎是用面向对象的风格编写的。因此,我不知道如何使用自己的设置编辑连接文件。假设我的主机是“localhost”,用户名是“root”,密码是“123”,要选择的数据库是“myDatabase”,我在下面的脚本中将它们放在哪里

<?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 ( !@mysql_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();
    }
}
?>

设置不在此文件中。检查配置文件,或者可能是创建此对象的文件

如果没有配置文件,并且没有创建此对象的文件,则需要手动执行此操作

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

我认为这不是一个好的做法,如果您创建一个返回此设置的配置文件会更好。

您在创建MySQL类实例时传递此数据:

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

你发布的是两个类。类的部分用途是从代码中抽象实际值。因此,您需要通过创建类的“实例”来连接到数据库。这可能看起来像:


$dbConnection = new MySQL('localhost', 'root', '123', 'myDatabase');
完成该步骤后,您可以执行以下操作:


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

啊,愚蠢的我,我看到有另一个文件的名称不是很直观。谢谢