Heim >Backend-Entwicklung >PHP-Tutorial >请问MYSQLI无法读取数据库问题

请问MYSQLI无法读取数据库问题

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

<?phpclass mysqldb  {    var $host = DB_HOST;                   //localhost    var $user = DB_USER;                   //root    var $pass = DB_PASSWORD;               //1234    var $database = DB_DATABASE;           //t6_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();      	  	        if (!empty($olddb)) $this -> selectdb($olddb);        return $this -> result;	}function get_data()	{      if(!$this -> result || !preg_match("/^Resource/i", $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 $sql = "SELECT * FROM t6_dept where de_id>'0 ORDER BY de_id ASC"; $db -> query($sql); $result = $db -> get_data();    //这里的$result没有取值成功echo $result[0]["hp_id"];?>因php升级到5.6,把mysql的读取方式全改mysqli了。结果数据输出不了,要怎么改才有数据输出,本人小白,跪求大神指点。





回复讨论(解决方案)

//你的$db 变量都没有初始化对象$db = new mysqldb();

回复#1 的,不好意思 原文$db = new mysqldb(); 有的 我漏发上去了 

print_r($db);
看看有什么

回复 #3 的 原来 $sql = "SELECT * FROM t6_dept where de_id>'0 ORDER BY de_id ASC";  de_id>'0‘ 写错了  改后了浏览器报错
PHP Warning:  preg_match() expects parameter 2 to be string, object given in C:\inetpub\wwwroot\hp\4.php on line 80 

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
Vorheriger Artikel:正则表达式小问题Nächster Artikel:php防止图片木马上传