php 类的写法有点不明白,对于php面向对象还是不太理解 10

$rs=$gblDB->query($sql);while($rs->fetchRecord()){...}好像这种$rs->fetchRecord()这种在类里要怎么写... $rs = $gblDB->query($sql);
while($rs->fetchRecord()){
...

}
好像这种 $rs->fetchRecord() 这种在类里要怎么写哦?
比如
public function query($sql){
...

return $this->result;
}
$re应该是返回的1个数组吧!那么这个数组又->fetchRecord(),那这个函数要怎么写了?
public function fetchRecord(){
}
直接这样写好像不对啊!
哪位高手给我解答下么?
class gblDB{

private $DBType; //数据库类型
private $DBServer; //主机
private $DBUser; //用户名
private $DBPswd; //密码
private $DBName; //MSSQL库名
private $sql; //sql执行语句
private $result;
private $conn;
private $show_error; //错误抛出的异常

/*构造函数*/
public function __construct($DBType,$DBServer,$DBUser,$DBPswd,$DBName) {
$this->DBType = $DBType; //数据库类型
$this->DBServer = $DBServer; //主机
$this->DBUser = $DBUser; //用户名
$this->DBPswd = $DBPswd; //密码
$this->DBName = $DBName; //MSSQL库名
$this->connect();
}
展开
 我来答
xwltmw
2013-06-25 · TA获得超过266个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:126万
展开全部
query方法里边,因为你给的不全,没法判断是你写的究竟是什么$re没在上文中出现这个变量,只有一个$rs,不知道是不是这个?
PHP类,成员有属性和方法,需要加访问修饰限定符如 public private protected等,如:
class person{
private $name;
public function say(){
echo 'hello';
}
}
访问对象属性石必须先对象再属性,
常量,和静态成员就用类名属性,或者方法名访问

这是个操作数据库的类,

定义方法肯定是写在类里边的,并且需要加访问修饰限定符,定义方法就跟普通函数一样,给你个参照吧:

/**
* mysql数据库操作类
*/
class MySQLDB {
//保存单例属性
private static $instance;
//操作数据库所需要的必要信息
private $_host;//主机地址
private $_port;//端口
private $_user;//用户名
private $_pass;//密码
private $_charset;//默认字符集
private $_dbname;//默认数据库
private $_prefix;//表前缀
private $_link;//连接标识保存属性
/**
* 构造方法
* @param $params array 构造时,需要的信息列表 $params = array('host'=>'xxx', 'post'=>'xxx', 'user'=>....);
*
*/
private function __construct($params=array()) {
//通过实例化对象时,传递的参数,初始化属性。
//同时判断,增加默认值
$this->_host = isset($params['host'])?$params['host']:'127.0.0.1';
$this->_port = isset($params['port'])?$params['port']:'3306';
$this->_user = isset($params['user'])?$params['user']:'root';
$this->_pass = isset($params['pass'])?$params['pass']:'';
$this->_charset = isset($params['charset'])?$params['charset']:'utf8';
$this->_dbname = isset($params['dbname'])?$params['dbname']:'';
$this->_prefix = isset($params['prefix'])?$params['prefix']:'';
//连接服务器
$this->_connect();
//设置编码
$this->_setCharset();
//选择数据库
$this->_selectDb();
}
/**
* 单例所需的私有克隆方法
*/
private function __clone() {
}
/**
* 用于获得该类对象的静态方法
*
* @param $params array 构造该对象时 所使用的参数数组
*
* @return 该类的单例
*/
public static function getInstance($params) {
if(!(self::$instance instanceof self)) {
self::$instance = new self($params);
}
return self::$instance;
}

/**
* 连接数据库
*
* @access private
*/
private function _connect() {
if($link = mysql_connect("{$this->_host}:{$this->_port}", $this->_user, $this->_pass)) {
//连接成功
$this->_link = $link;
} else {
//连接失败
exit('-_-!连接失败');
}
}
/**
* 在该类的对象,被反序列化时,对相应的资源进行重新初始化
*/
public function __wakeup() {
//连接服务器
$this->_connect();
//设置编码
$this->_setCharset();
//选择数据库
$this->_selectDb();
}
/**
* 在该类的对象,被序列化时,设置哪些属性应该序列化
*/
public function __sleep() {
return array('_host', '_port', '_user', '_pass', '_dbname', '_charset', '_prefix');
}
/**
* 设置字符集
*
* @access private
*/
private function _setCharset() {
// if(!mysql_query("set names {$this->_charset}")) {
// exit(mysql_error());
// }
$this->_query("set names {$this->_charset}");
}
/**
* 选默认数据库
*/
private function _selectDb() {
if($this->_dbname != '') {
$this->_query("use {$this->_dbname}");
}
}
/**
* 执行sql
*
* @access private
*
* @param $query string 待执行的sql语句
*
* @return mixed 如执行的查询类,返回结果集,非查询类的布尔值
*/
public function _query($query) {
//执行,判断执行结果,返回执行结果。如果有错误,提供错误信息
if($result = mysql_query($query, $this->_link)) {
return $result;//返回结果即可
} else {
//执行失败
echo '-_-好像失败了!<br>';
echo '出错的语句是:', $query, '<br>';
echo '错误的信息是:', mysql_error($this->_link), '<br>';
echo '错误的代码是:', mysql_errno($this->_link), '<br>';
die;//脚本就不走了
}
}

/**
* (标题)获得符合sql,的全部数据,适合用于执行查询类方法,select,show,desc(describe)
*
* (详细信息)通过得到一条查询类语句,返回所有的查询结果,方法内,需要实现,执行,获得结果集,在结果集内取得所有数据
*
* @access public
*
* @param $query_str string 需要执行的查询类字符串
*
* @return array 二维数组,每一个一维元素代表一条记录,每一个二维的元素,表示一个记录的字段
*/
public function getAll($query_str) {
if($result = $this->_query($query_str)) {
//成功
$rows = array();//初始化,防止一条记录都没有。
while($row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
return $rows;
} else {
//失败
return false;
}
}
/**
* 获得符合sql,的第一条记录,适合用于执行查询类方法,select,show,desc(describe)
*
* (详细信息)通过得到一条查询类语句,返回第一条查询结果,方法内,需要实现,执行,获得结果集,在结果集内取得第一条数据
*
* @access public
*
* @param $query_str string 需要执行的查询类字符串
*
* @return array 一维数组,每个元素,表示一个记录的字段
*/
public function getRow($query_str) {
if($result = $this->_query($query_str)) {
//成功
$row = mysql_fetch_assoc($result);
return $row;
} else {
//失败
return false;
}
}

/**
* 获得符合sql,的第一条记录的第一个字段,适合用于执行查询类方法,select,show,desc(describe)
*
* (详细信息)通过得到一条查询类语句,返回第一条查询结果的第一个字段,方法内,需要实现,执行,获得结果集,在结果集内取得第一条数据的第一个字段
*
* @access public
*
* @param $query_str string 需要执行的查询类字符串
*
* @return string 表示一个记录的第一个字段的值
*/
public function getOne($query_str) {
if($result = $this->_query($query_str)) {
//成功
$row = mysql_fetch_row($result);//最好使用索引数组
return $row[0];
} else {
//失败
return false;
}
}
/**
* 获取最新插入的自动增长ID
*/
public function last_insert_id() {
return mysql_insert_id($this->_link);
}
/**
* 取得影响的行数
*/
public function affected_rows() {
return mysql_affected_rows();
}

}
百度网友f30c93f
2013-06-25 · 超过25用户采纳过TA的回答
知道答主
回答量:155
采纳率:0%
帮助的人:73万
展开全部
其实不用你那么麻烦的;
<?php
$mysql_server = "127.0.0.1";
$mysql_username = "root";
$mysql_password = "";
$mysql_dbname = "a";

if (isset($_GET['username']) && !empty($_GET['username'])) {
$con = mysql_connect($mysql_server, $mysql_username, $mysql_password) or die ('Could not connect to mysql server!');
mysql_select_db($mysql_dbname) or die('Could not select database!');

$username = $_GET['username'];
$sql = "SELECT 表列名 FROM b";
$arrays=mysql_fetch_assoc(mysql_query($sql));
foreach($arrays['列名'] as $v)   {   echo $v." ";   }
mysql_close($con);
}
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-25
展开全部
function fetchRecord(){
$row=mysql_fetch_array($this->return);
return $row;
}
这样?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式