【问题标题】:Object Oriented and Procedural Mysqli Help?面向对象和程序化 Mysqli 帮助?
【发布时间】:2010-12-13 22:33:39
【问题描述】:

asked a question earlier 和一位用户说我看起来像oddly mixing the OO and procedural style usage of mysqli,我应该坚持其中一个。

谁能告诉我我的代码到底出了什么问题,以及我的代码在 OO 和过程形式中应该是什么样子。我现在有点好奇,因为我的代码似乎对我有用,但是我对 PHP 和 MySQL 还是很陌生,想学习正确的方法。

这里是代码。

// Query member data from the database and ready it for display
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT users.*, categories.*, users_categories.* FROM users_categories INNER JOIN users ON users_categories.user_id = users.user_id INNER JOIN categories ON users_categories.category_id = categories.id WHERE users_categories.user_id=3");

if (!$dbc) {
    // There was an error...do something about it here...
    print mysqli_error($mysqli);
}

【问题讨论】:

    标签: php mysql


    【解决方案1】:
    // Query member data from the database and ready it for display
    $mysqli = new mysqli("localhost", "root", "", "sitename");
    $dbc = $mysqli->query("SELECT users.*, categories.*, users_categories.* FROM     users_categories INNER JOIN users ON users_categories.user_id = users.user_id INNER JOIN categories ON users_categories.category_id = categories.id WHERE users_categories.user_id=3");
    
    if (!$dbc) {
        // There was an error...do something about it here...
        print $mysqli->error();
    }
    

    而且我认为您不应该以这种方式开始学习 oop。我推荐你http://php.net/manual/en/oop5.intro.php

    【讨论】:

      【解决方案2】:

      我过去用过这个,不知道它是否有帮助,因为这不是你问题的真正答案,但可能有用。

          <?php // cnxVars
          class cnxVars {
      
       private $host = "localhost";
       private $host_un = "username";
       private $host_pass = "test123";
       private $host_db = "si";
      
       public function cnx() { // Connect to MySQL
        $this->cnx = mysql_connect($this->host, $this->host_un, $this->host_pass) or mysql_error(); }
      
       public function db() { // Select DB
        return mysql_select_db($this->host_db, $this->cnx) or mysql_error(); }
      
      
          } // End cnxVars ?>
      

      那么你可以这样做

      $mysql = new cnxVars();
      $mysql->cnx();
      $mysql->db();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-04
        • 1970-01-01
        相关资源
        最近更新 更多