OPP mysqli_query()期望两个参数......

时间:2016-10-01 07:57:11

标签: php mysqli

我正在尝试学习面向对象的编程。 我的问题是如何在类中的mysqli_query()下添加链接。

在程序风格中,我只是创建一个带有连接细节的$变量,然后在mysqli_query($ variable,$ sql)等中使用它。

在我的课程中我有连接到数据库的函数connect()并返回true但是我可以在我的mysqli_query()中使用它吗?请看这里的代码:

    <?php

class DB {
    protected $db_name = 'OOP_forum';
    protected $db_user = 'Marcel';
    protected $db_pass = *****;
    protected $db_host = 'localhost';


    public function connect() {

        $connection = mysqli_connect($this->db_host, $this->db_user, $this->db_pass);
        mysqli_select_db($connection, $this->db_name);

        return true;
    }

    public function processRowSet($rowSet, $singleRow = false)  {

        $resultArray = array();
        while($row = mysqli_fetch_assoc($rowSet)) {
            arraypush($resultArray, $row);
        }

          if($singleRow==true) {
              return $resultArray[0];
          }else {
                 return $resultArray; }
        }


      public function select ($table, $where, $column = '*')  {
          $sql = "SELECT $column FROM $table WHERE $where";
          $result = mysqli_query($sql);

              if(mysqli_num_row($result) == 1 ){
                 return $this->processRowSet($result, true);
               } else
                  { return $this->processsRowSet($result);
             }
          }



      public function update ($data, $table, $where)    {

                      foreach ($data as $column->$value) {

                          $sql = "UPDATE $table SET $column = $value WHERE $where";
                          mysqli_query($sql) or die(mysqli_error());
                             }
                          return true;
                      } 

      public function delete ($table, $column, $where)  {
          $sql = "DELETE FROM $table WHERE $column = $where";

              if (query($sql)=== TRUE) {
              echo "Record Deleted sucessfully";
          }else {
              echo "Error deleting record: " . $connection->error;
          }

      }               

      public function insert($data, $table)  {

             $columns = "";
             $values = "";

             foreach ($data as $column->$value) {

                 $columns .= ($columns == "") ? "": ", " ;
                 $columns .= $column;
                 $values .= ($values == "") ? "" : ", ";
                 $values .= $value;
                    }


             $sql = "insert into $table ($columns) values ($values)";
             mysqli_query($sql) or die(mysqli_error());

             return mysqli_insert_id();
              }      

          } 


?>

1 个答案:

答案 0 :(得分:0)

在尝试学习OOP编程之前,您必须学习基本的OOP语法。

为了做到这一点,请忘记创建自己的类并学习如何使用已经创建的类。所以,首先要学习如何使用mysqli。哪个已经上课了。

更好的是,学习PDO,因为与mysqli不同,它已经是一个可以使用的数据库访问类,例如,你不需要像processRowSet这样的函数。