在网上找了一个数据操作类,<?php
//db.php
/**
功能:数据库的基础操作类
*/
class DBSQL{
private $CONN = ""; //定义数据库连接变量
/**
* 功能:初始化构造函数,连接数据库
*/
public function __construct(){
try {
$conn = mysql_connect("地址","用户","密码");
} catch (Exception $e) {
echo $e;
}
try{
mysql_select_db("数据库名",$conn);
mysql_query("SET NAMES ‘utf8′");
}catch (Exception $e){
echo $e;
}
$this->CONN = $conn ;
}
/**
* 功能:数据库查询;
* 参数:$sql SQL语句;
* 返回:二维数组或者false
*/
public function select($sql, $one = false) {
if(empty($sql)) return false; //如果SQL语句为空 返回false
if(empty($this->CONN)) {
self::__construct();
}
try {
$results = mysql_query($sql,$this->CONN);
} catch (Exception $e) {
echo $e;
}
if((!$results) or (empty($results))){ //如果查询结果为空 释放结果并返回flase
@mysql_free_result($results);
return false;
}
$data = array();
if(!$one) {
while ($row = @mysql_fetch_array($results)) { //把查询结果组成一个二维数组
$data[] = $row;
}
} else {
$data = $row = @mysql_fetch_array($results);
}
@mysql_free_result($results);
return $data;
}
/**
* 功能:数据插入函数
* 参数:$sql SQL语句
* 返回: 0或插入新数据的ID
*/
public function insert($sql){
if (empty($sql))
return false; //如果SQL语句为空 返回false
if (empty($this->CONN))
{
self::__construct();
}
try {
$results = mysql_query($sql,$this->CONN);
} catch (Exception $e) {
echo $e;
}
if (!$results) //如果插入失败返回0,正确返回ID
return 0;
else
return @mysql_insert_id($this->CONN);
}
/**
* 功能:数据更新函数
* 参数:$sql SQL 语句
* 返回:TRUE OR FALSE
*/
public function update($sql){
if(empty($sql)) return false; //如果SQL语句为空 返回false
if(empty($this->CONN)) {
self::__construct();
}
try {
$results = mysql_query($sql,$this->CONN);
} catch (Exception $e) {
echo $e;
}
if($results) {
return mysql_affected_rows();
} else {
return false;
}
}
/**
* 功能:数据删除函数
* 参数:$sql SQL 语句
* 返回:TRUE OR FALSE
*/
public function delete($sql){
if(empty($sql)) return false; //如果SQL语句为空 返回false
if(empty($this->CONN)) {
self::__construct();
}
try {
$results = mysql_query($sql,$this->CONN);
} catch (Exception $e) {
echo $e;
}
if ($results) {
return mysql_affected_rows();
} else {
return false;
}
}
}
?>
<?php
include('db.php');
$db = new DBSQL();
$sql = "select * from config";
$rs = $db->select($sql, false);//接着怎么写
?>但是后面不会用了。
这里怎么读表config里的name数据。

解决方案 »

  1.   

    汗,没用过php.给你一个简单示例:test.t结构如下:
    mysql> desc test.t
        -> ;
    +-------+----------+------+-----+---------+-------+
    | Field | Type     | Null | Key | Default | Extra |
    +-------+----------+------+-----+---------+-------+
    | id    | int(11)  | NO   | PRI | NULL    |       |
    | col2  | char(32) | YES  |     | NULL    |       |
    +-------+----------+------+-----+---------+-------+
    2 rows in set (0.02 sec)mysql> select * from test.t;
    +----+------+
    | id | col2 |
    +----+------+
    |  1 | abc  |
    +----+------+
    1 row in set (0.00 sec)<?php
    include('db.php');
    $db = new DBSQL();
    $sql = "select * from test.t";
    $rs = $db->select($sql, false);for ($i=0; $i<count($rs); $i++)
    {
        print $rs[$i][0]. "   " . $rs[$i][1] . "<br>";
    }?>运行结果:
    1 abc
      

  2.   

    上例中,也可以使用列索引:
    print $rs[$i]["id"]. "   " . $rs[$i]["col2"] . "<br>";
      

  3.   

    谢谢你的回答,使用这样是可以读出表里所有内容了。
    怎么样才能只读出name的内容?
      

  4.   


    for ($i=0; $i<count($rs); $i++)
    {
      print "name = " . $rs[$i]["name"] . "<br>";
    }
      

  5.   


    这样会错啊。
    这个可以读出name的内容,但是要知道name的位置24才可以,这样就太麻烦了吧。
    print "name = " . $rs[24][1] . "<br>";下面是判断表里的字段名等于name,才读内容,如果读多个字段的内容,这样是不是也麻烦?
    for ($i=0; $i<count($rs); $i++)
    {
    if($rs[$i][0]=="name") {
    print "name = " . $rs[$i][1] . "<br>"; 
    //print "name = " . $rs[$i]["name"] . "<br>";这样也是报错
    }
    }
    相信是有什么更简单的使用方法吧。
      

  6.   

    不可能是这样子吧。你这样写的话,"name"就成了结果集的值了。
    你的config表表结构是啥样子的?能把问题描述清楚些吗?
    难道是第一列的值可能是"name",然后第二列存储"name"对应的值。$rs[$i]["<列名>"]
    $i为行号,然后根据列名取值,这个是不会错的。
      

  7.   

     我也不清楚,有没有像JSP连接MSSQL的这样简单读出一二个内容。select [id],[name] from [config]
    ...
      if (rs.next()) {
    id =  rs.getString(1);
    name =  rs.getString(2);
    }现在学PHP和MYSQL真不会了,
    是不是PHP读数据出果的结果只有数组形式。
      

  8.   


    desc config;
    把config的表结构贴出来啊,不要绕开问题好不好。
      

  9.   

    你把我的例子完整的做一遍就知道了。基本上可以断定你的表结构绝对不是config(id ***, name ***)
    sigh,还是得自己多动手啊。
      

  10.   

    $rs = $db->select($sql, false);既然已经得到$rs这一个二维数组了,那肯定是用一个for循环或是while把里面的记录提取出来
      

  11.   

    我看了一下这个php库
    从select中提出出来的$rs,不是原生的result,而是普通的二维数组
    不能用列名访问,只能用数字索引访问
    其实一楼的代码是OK的
    for ($i=0; $i<count($rs); $i++)
    {
      print $rs[$i][0]. " " . $rs[$i][1] . "<br>";
    }建议你试一下,同时,你得到$rs的时候,要检查一下$rs是否是false,
    无记录的时候,是返回false的