我有问题在MYSQL选择在OOP PHP。我不知道怎样把它写对。我的代码是:
$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++;
}