簡體   English   中英

MySQL在oop PHP中選擇

[英]mysql select in oop php

我在OOP PHP中選擇MYSQL時遇到問題。 我不知道怎么寫正確。 我的代碼是:

$sql = "SELECT name_mcategory 
            FROM web_main_category WHERE userid=('".$userid."')";
    $result = mysql_query($sql);
    $e=0;
    $maincat=array ();
    while($data=mysql_fetch_array($result))
    { 
        $maincat[$e]=$data['name_mcategory'];
        $e++;

    } 

如何在OOP中編寫它? 我已經嘗試過了,但是沒有用。

class nweb {
var $userid;
var $mcategory;


function Getmain_category () {

$rs = mysql_query("SELECT name_mcategory 
            FROM web_main_category WHERE userid=$this->userid");
  }
$this->tab=mysql_fetch_object($rs);
}
   }

在打印頁面中

$mcat = new nweb();
$mcat->getmain_category ();
$mcat->mcategory=$this->name_mcategory;

如何獲取像$ maincat [$ e] = $ data ['name_mcategory']這樣的數據;

如果要使用OOP,請使用PDO類的OOP DB層:

class nweb extends PDO {

  public $userid, $mcategory;

  public function __construct($hostname, $dbname, $username, $password) {
    parent::__construct($hostname,$dbname,$username,$password);
  }

  public function getmain_category() {
     return $this->query("SELECT name_mcategory FROM web_main_category WHERE userid = {$this->userid}")->fetch();
  }
}

$mcat = new nweb('hostname', 'dbname', 'username', 'password');
var_dump($mcat->getmain_category());

注意:您添加了一些錯誤處理,請參閱pdo::query

在OOP中,我們通常制作一個單獨的類來處理數據庫操作。 例如Database.php,以便執行查詢並將結果返回Category.php或使Category繼承Database.php。 如果您想要更好的方法,請使用PHP Activerecord。

這樣檢查

 class nweb {
   var $userid;
   var $mcategory;


  function getmain_category () {

             $rs = mysql_query("SELECT name_mcategory 
                    FROM web_main_category WHERE userid = {$this->userid}");

             return mysql_fetch_object($rs);
  }

}



//print page


   $mcat = new nweb();
   $data = $mcat->getmain_category ();

   $e=0;
   $maincat=array ();
   while($data=mysql_fetch_array($result))
   { 
        $maincat[$e]=$data['name_mcategory'];
        $e++;
   } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM