ホームページ  >  記事  >  バックエンド開発  >  MYSQLIがデータベースを読み取れない問題を教えてください

MYSQLIがデータベースを読み取れない問題を教えてください

WBOY
WBOYオリジナル
2016-06-23 13:49:581060ブラウズ

<?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"; が間違って書かれており、ブラウザがエラーを報告したことが判明しました。変更後

PHP 警告: preg_match() はパラメータ 2 が文字列であることを予期しており、オブジェクトは C:inetpubwwwroothp4.php の 80 行目で指定されています

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。