应用MYSQLI读取数据库读不了问题

小白看世界OL 2014-09-15 03:53:02


<?php
$DB_HOST = "";
$DB_USER = "";
$DB_PASSWORD = "";
$DB_DATABASE = "";


define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "1234");

define("DB_DATABASE", "t6_db_hp");

class mysqldb
{
var $host = DB_HOST; //localhost
var $user = DB_USER; //root
var $pass = DB_PASSWORD; //1234
var $database = DB_DATABASE; //t6_db_hp
var $conn;
var $sql;
var $n = 0;
var $m = 0;
var $result = "";
var $debug = false;
var $err = "";

function mysqldb($host="", $user="", $pass="", $database="")
{
if ($host != "") $this -> host = $host;
if ($user != "") $this -> user = $user;
if ($pass != "") $this -> pass = $pass;
if ($database != "") $this -> database = $database;

if (!$this -> conn = @mysqli_connect($this -> host, $this -> user, $this -> pass))
{
return $this -> output("连接数据库 '".$this -> host."' 失败。".mysqli_error($this -> conn));
}
mysqli_query($this -> conn,"SET NAMES 'utf8'");
$this -> selectdb();
}

function selectdb($database="")
{
if ($database != "" && $database != $this -> database)
$this -> database = $database;

if (!mysqli_select_db($this -> conn, $this -> database))
{
return $this -> output("无法使用数据库 '".$this -> database."'。");
}
}

function query($sql="", $database="") //$sql
{
if ($sql != "") $this -> sql = $sql;
if ($database != "" && $database != $this -> database)
{
$olddb = $this -> database;
$this -> selectdb($database);
}
$this -> result = @mysqli_query($this -> conn,$this -> sql);
if (mysqli_error($this -> conn) != "")
{
return $this -> output("执行以下SQL语句时失败:'".$this -> sql."' <br><br>".mysqli_error($this -> conn));
}
$this -> n = @mysqli_affected_rows($this -> conn);

if (!empty($olddb)) $this -> selectdb($olddb);
return $this -> result;


}

function get_data()
{
/* if(!$this -> result || !preg_match("/^Resource/i", $this -> result)){ */
if(!$this -> result || !is_resource($this->result)){
return $this->output("没有数据,请先执行SQL的'select'语句!");
}
$count=0;
$this -> m = @mysqli_num_rows($this -> result);
if ($this -> m > 0)
{
while ($row = mysqli_fetch_array($this -> result))
{
$data[$count] = $row;
$count++;
}
return $this->result=$data;
}
else
{
return $this -> output("数据为空!");
}
mysqli_free_result($this -> result);
}

function output($msg){
$this->err=$msg;
if ($this->debug)echo $msg;
return false;
}
}
?>
<?php /*?>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<?php */?>


<?php
$db = new mysqldb();
if($db)
{
echo "链接数据库 1";
echo "<br/>";
echo "<br/>";
}

$sql = "SELECT * FROM t6_dept where de_id>'0' ORDER BY de_id ASC";
$db -> query($sql);
$result = $db -> get_data();

if(!$result)
{
echo "取出数据失败result 0";
echo "<br/>";
echo "<br/>";
}

echo $result[0]["de_name"]; //无法显示数据

print_r($db);

?>



最后输出不了数据$resul没有值 t浏览器显示结果:求哪里出错了 ???

链接数据库 1

取出数据失败result 0

mysqldb Object ( [host] => localhost [user] => root [pass] => 1234 [database] => t6_db_hp [conn] => mysqli Object ( [affected_rows] => 4 [client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: f373ea5dd5538761406a8022a4b8a374418b240e $ [client_version] => 50011 [connect_errno] => 0 [connect_error] => [errno] => 0 [error] => [error_list] => Array ( ) [field_count] => 4 [host_info] => localhost via TCP/IP [info] => [insert_id] => 0 [server_info] => 5.6.20 [server_version] => 50620 [stat] => Uptime: 22428 Threads: 1 Questions: 5 Slow queries: 0 Opens: 68 Flush tables: 1 Open tables: 61 Queries per second avg: 0.000 [sqlstate] => 00000 [protocol_version] => 10 [thread_id] => 1 [warning_count] => 0 ) [sql] => SELECT * FROM t6_dept where de_id>'0' ORDER BY de_id ASC [n] => 4 [m] => 0 [result] => mysqli_result Object ( [current_field] => 0 [field_count] => 4 [lengths] => [num_rows] => 4 [type] => 0 ) [debug] => [err] => 没有数据,请先执行SQL的'select'语句! )
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkg_1473995421 2014-09-16
  • 打赏
  • 举报
回复
应用MySql读取数据库数据示例 //连接数据库conn文件夹 <?php $conn=mysql_connect("localhost","root","root"); //连接数据库服务器 mysql_select_db("db_forumm",$conn); //连接指定的数据库 mysql_query("set names gb2312"); //对数据库中的编码格式进行转换,避免出现中文乱码的问题 ?> //引入连接数据库文件 <?php include("../conn/conn.php");?> //读取数据库信息 <?php if($page){ $page_size=4; //每页显示2条记录 $query="select count(*) as total from tb_forum_user where tb_forum_id"; //从数据库中读取数据 $result=mysql_query($query);//CodeGo.net/ $message_count=mysql_result($result,0,"total"); //获取总的记录数 $page_count=ceil($message_count/$page_size); //获取总的页数 $offset=($page-1)*$page_size; $query=mysql_query("select * from tb_forum_user where tb_forum_id order by tb_forum_id desc limit $offset, $page_size"); while($myrow=mysql_fetch_array($query)){ ?> //显示数据库信息 <?php echo $myrow[tb_forum_name];?>" ><?php echo $myrow[tb_forum_name];?></a></span></td> <td align="center"><span class="STYLE1"><?php echo $myrow[tb_forum_truepass];?></span></td> <td align="center"><span class="STYLE1"><?php echo $myrow[tb_forum_date];?></span></td> <td align="center"><span class="STYLE1"><?php echo $myrow[tb_forum_type];?></span></td> <td align="center"><a href="delete_leaguer.php?delete_id=<?php echo $myrow[tb_forum_id];?>&&delete_user=<?php echo $myrow[tb_forum_user];?>" //分页显示(略)
小白看世界OL 2014-09-15
  • 打赏
  • 举报
回复
引用
if(!$this -> result || !is_object($this->result)){ return $this->output("没有数据,请先执行SQL的'select'语句!"); }
终于解决了困扰很多天的问题了,谢谢版主
xuzuning 2014-09-15
  • 打赏
  • 举报
回复
if(!$this -> result || !is_object($this->result)){ return $this->output("没有数据,请先执行SQL的'select'语句!"); }
小白看世界OL 2014-09-15
  • 打赏
  • 举报
回复
引用
mysqli_query($this -> conn,$this -> sql) 返回的是 mysqli_result 对象,不是 resource (资源) 所以 !is_resource($this->result) 成立,程序提前结束
要怎么改???
xuzuning 2014-09-15
  • 打赏
  • 举报
回复
mysqli_query($this -> conn,$this -> sql) 返回的是 mysqli_result 对象,不是 resource (资源) 所以 !is_resource($this->result) 成立,程序提前结束

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧