关于PHP的问题,问题在下面

<?php

。。。。。

        public function sqlRun($sql){
		global $gconn;
		return $gconn->query($sql);
	}



        public function getRow($sql){
		$res = $this->sqlRun($sql); 
		return $res->fetch_assoc();

	}

。。。。

?>



前面的调用
<?php
。。。。

//创建对象
$data = new MysqlData;
$sql = "SELECT * FROM users WHERE id = ".$id.";";
$row = $data->getRow($sql);
// echo $sql;
$data->closeConn();
?>

 

出现以下问题,没搞懂,是哪里错了?好像是query($sql)用错了?

 

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in F:\PhpStudy\phpstudy_pro\WWW\MysqlData.php:22

Stack trace: #0 F:\PhpStudy\phpstudy_pro\WWW\main.php(13): MysqlData->getRow('SELECT * FROM u...')

#1 {main} thrown in F:\PhpStudy\phpstudy_pro\WWW\MysqlData.php on line 22

<?php
require("./MysqlData.php");
/*检查cookie中的password变量是否不等于true,是的话表示尚未登录网站,就重定向到denglu.html页面*/
$id = $_COOKIE["id"];
$password = $_COOKIE["password"];
if ($password != "TRUE") {
	header("location:denglu.html");
	exit();
}

//创建对象
$data = new MysqlData;
$sql = "SELECT * FROM users WHERE id = ".$id.";";
$row = $data->getRow($sql);
// echo $sql;
$data->closeConn();
?>


<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>登录成功页面</title>
</head>
 <style type="text/css">
 	.wrapper{

         text-align: center;
 		width:1000px;
 	    margin:20px auto;
 	}
 	h2{
 	background-color:#7CCD7C;
 	margin:0px;
 	text-align:center;
     }
     .my{
     	margin:20px auto;
     }
     .my labal{
     	text-align: center;
 		background-color: 	#FFB6C1;
 		color: #fff;
 		margin:20px auto;
     }
 </style>
<body>
<div class="wrapper">
<h2>用户管理系统</h2>
<div class="my">
<labal>我的资料</labal>
</div>
<labal>用户名:</labal><input type="text" value="<?php echo $row['name'] ?>" readonly="readonly"><br><br>
<labal>性别:</labal>
<input type="radio"value="0" <?php if ($row['sex'] == "0") echo "checked"?>>男
<input type="radio"value="1" <?php if ($row['sex'] == "1") echo "checked"?>>女

<br><br>
<labal>年龄:</labal><input type="text" value="<?php echo $row['age'] ?>" readonly="readonly"><br><br>
<labal>邮箱:</labal><input type="text" value="<?php echo $row['email'] ?>" readonly="readonly"><br><br>
<a href="modify.php">修改我的资料</a>
</div>

</body>
</html>

main.php

<?php
/**
 * 读取数据库
 */
class MysqlData extends MysqlConnect
{
	/**
	 * 查询数据
	 * @return $sql
	 */
	public function selectData(){
		$sql = "SELECT * FROM users;";
		return $sql;
	}
	/**
	 * 获取单行数据
	 * @param   $sql
	 * @return 
	 */
	public function getRow($sql){
		$res = $this->sqlRun($sql); 
		return $res->fetch_assoc();

	}
	/**
	 * 添加数据
	 * @param   $name  
	 * @param   $sex   
	 * @param   $age   
	 * @param   $email 
	 * @return         
	 */
	public function insertData($name,$sex,$age,$email){
		$insert_sql = "INSERT INTO users(name,sex,age,email)VALUES('".$name."',".$sex.",".$age.",'".$email."');";
		// $this->sqlRun($insert_sql);
		if ($this->sqlRun($insert_sql) === TRUE) {
			echo "<script type='text/javascript'>alert('新用户添加成功!');</script>";
		}else{
			echo "<script type='text/javascript'>alert('添加失败!');</script>";
		}
	}
	public function select_user($name,$password){
		$select_sql = "SELECT * FROM users WHERE name='".$name."' and password='".$password."';";
		return $select_sql;
	}
	/**
	 * 注册新用户
	 * @param  [type] $name     [description]
	 * @param  [type] $password [description]
	 * @param  [type] $sex      [description]
	 * @param  [type] $age      [description]
	 * @param  [type] $email    [description]
	 * @return [type]           [description]
	 */
	public function zhuceData($name,$password,$sex,$age,$email){
		$zhuce_sql = "INSERT INTO users(name,password,sex,age,email)VALUES('".$name."','".$password."',".$sex.",".$age.",'".$email."');";
		return $zhuce_sql;
	}
	/**
	 * 删除数据
	 * @param  $delId 
	 * @return        
	 */
	public function deleteData($delId){
		$delete_sql = "DELETE FROM users WHERE id =".$delId;
		if ($this->sqlRun($delete_sql) === TRUE) {
			echo "<script type='text/javascript'>alert('删除成功!');</script>";
		}else{
			echo "<script type='text/javascript'>alert('删除失败!');</script>";
		}
	}
	/**
	 * 编辑页面根据id查询出要修改的数据
	 * @param   $editId 
	 * @return          
	 */
	public function editData($editId){
		$edit_sql = "SELECT * FROM users WHERE id=".$editId;
		// $this->sqlRun($edit_sql);
		return $edit_sql;
	}
	
	/**
	 * 更改数据
	 * @param   $name  
	 * @param   $sex   
	 * @param   $age   
	 * @param   $email 
	 * @return         
	 */
	public function updateData($id,$name,$sex,$age,$email){
		$update_sql = "UPDATE users SET name='".$name."',sex=".$sex.",age=".$age.",email='".$email."' WHERE id=".$id.";";
		echo $update_sql;
		if ($this->sqlRun($update_sql)) {
			echo "修改成功!";
		}else{

			echo "shibai !";
	    }
	}
	/**
	 * 高级搜索
	 * @param  [type] $name  [description]
	 * @param  [type] $sex   [description]
	 * @param  [type] $age   [description]
	 * @param  [type] $email [description]
	 * @return [type]        [description]
	 */
	public function searchData($name,$sex,$age,$email){
		// $search_sql = "SELECT * FROM users WHERE 1=1 and name LIKE '%".$name."%'
		//                UNION
		//                SELECT * FROM users WHERE sex=".$sex."
		//                UNION
		//                SELECT * FROM users WHERE age=".$age."
		//                UNION
		//                SELECT * FROM users WHERE email LIKE '%".$email."%';";
		// return $search_sql;
		switch ($name) {
			//未输入姓名
			case null:
				$name_info='';
				break;
			     //根据姓名模糊查询
			    default:
				$name_info=" and name LIKE '%".$name."%'";
				break;
		}
		switch ($sex) {
			//未输入性别
			case null:
				$sex_info='';
				break;
			//根据性别准确查询
			default:
				$sex_info=' and sex='.$sex;
				break;
		}
		switch ($age) {
			//未输入年龄
			case null:
				$age_info='';
				break;
			//根据年龄准确查询
			default:
				$age_info=' and age='.$age;
				break;
		}
		switch ($email) {
			//未输入邮箱
			case null:
				$email_info='';
				break;
			//根据邮箱模糊查询
			default:
				$email_info=" and email LIKE '%".$email."%'";
				break;
		}
		$search_sql='SELECT * FROM users WHERE 1=1'.$name_info.$sex_info.$age_info.$email_info;'';
		return $search_sql;
	}
}

/**
 * 连接数据库
 */
class MysqlConnect
{
	protected $gconn = null;
	/**
	 * 初始化
	 */
	public function __construct()
	{
		global $gconn;
		$gconn = $this->sqlConn();
	}
	/**
	 * 数据库连接
	 * @return mysqli
	 */
	public function sqlConn(){
		// var_dump(111);
		$servername = "localhost";
		$username = "root";
		$password = "123456";
		$dbname = "design";
		//连接数据库
		$conn = new mysqli($servername,$username,$password,$dbname);
		//检测连接
		if ($conn->connect_error) {
			die("连接失败...") . $conn->connect_error;
		}else{
			//echo "数据库连接成功!";
		}
		return $conn;
	}
	/**
	 * 执行sql语句
	 * @param   $sql 
	 * @return  
	 */
	public function sqlRun($sql){
		global $gconn;
		return $gconn->query($sql);

	}
	/**
	 * 关闭数据库
	 * @return $conn
	 */
	public function closeConn(){
		global $gconn;
		$gconn->close();
	}

}

 

MysqlData.php

dd