Heim  >  Artikel  >  Backend-Entwicklung  >  应用MYSQLI读取数据库读不了问题

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

WBOY
WBOYOriginal
2016-06-23 13:49:351080Durchsuche

<?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'语句! )


回复讨论(解决方案)

mysqli_query($this -> conn,$this -> sql) 返回的是 mysqli_result 对象,不是 resource (资源)
所以 !is_resource($this->result) 成立,程序提前结束

mysqli_query($this -> conn,$this -> sql) 返回的是 mysqli_result 对象,不是 resource (资源)
所以 !is_resource($this->result) 成立,程序提前结束



要怎么改???

if(!$this -> result || !is_object($this->result)){     
        return $this->output("没有数据,请先执行SQL的'select'语句!");
      }

if(!$this -> result || !is_object($this->result)){     
        return $this->output("没有数据,请先执行SQL的'select'语句!");
      }



终于解决了困扰很多天的问题了,谢谢版主
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn