在网上找了一个数据操作类,<?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数据。
//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数据。
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
print $rs[$i]["id"]. " " . $rs[$i]["col2"] . "<br>";
怎么样才能只读出name的内容?
for ($i=0; $i<count($rs); $i++)
{
print "name = " . $rs[$i]["name"] . "<br>";
}
这样会错啊。
这个可以读出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>";这样也是报错
}
}
相信是有什么更简单的使用方法吧。
你的config表表结构是啥样子的?能把问题描述清楚些吗?
难道是第一列的值可能是"name",然后第二列存储"name"对应的值。$rs[$i]["<列名>"]
$i为行号,然后根据列名取值,这个是不会错的。
...
if (rs.next()) {
id = rs.getString(1);
name = rs.getString(2);
}现在学PHP和MYSQL真不会了,
是不是PHP读数据出果的结果只有数组形式。
desc config;
把config的表结构贴出来啊,不要绕开问题好不好。
sigh,还是得自己多动手啊。
从select中提出出来的$rs,不是原生的result,而是普通的二维数组
不能用列名访问,只能用数字索引访问
其实一楼的代码是OK的
for ($i=0; $i<count($rs); $i++)
{
print $rs[$i][0]. " " . $rs[$i][1] . "<br>";
}建议你试一下,同时,你得到$rs的时候,要检查一下$rs是否是false,
无记录的时候,是返回false的