查询Class在调用时不显示结果

时间:2014-10-10 11:57:38

标签: php sql

我正在尝试通过简单地调用函数并在方法中添加$sql参数来创建一个在我的页面中的任何位置进行查询的类。

所有东西都处于品尝阶段,所以我知道像SQL注入这样的小问题,但这不是主题。

在上课后,我测试了它,但我没有得到任何结果不知道为什么事情看起来对我好,但我可能会遗漏一些基本的东西。

我的PHP calss:

<?php

class Query{

    protected $host = 'localhost';
    protected $user = 'root';
    protected $pass = 'root';
    protected $db = 'test';

    public function connectAction(){

        $con = mysqli_connect($this->host, $this->user, $this->pass, $this->db) or die('Cannot Connect to DB');
        return $con;
    }

    public function queryAction($sql){

        mysqli_query($this->connectAction(),$sql);
        //$count = mysqli_num_rows($query);


        /*if($query == true && $count > 0){

        }else{

        }*/

    }
}

$execute = new Query();

我想要显示结果的第二个文件:

<html>
<head>
    <title>
    </title>
</head>
<body>
<h1>Welcome</h1>
<h3><?php

require_once('query.php');

$sql = 'SELECT * FROM tbl_user';

    $execute->queryAction($sql);

    foreach($execute as $item){
        echo $item['user_pass'];
    }

?></h3>
</body>
</html>

请一位有人帮助我

3 个答案:

答案 0 :(得分:0)

试试这个..

功能:

function select_rows($table,$fieldlist,$condition)
{
    $sql="select $fieldlist from $table $condition ";
/// echo $sql;exit;
    $resArray=$this->QueryResult($sql,'Select');
    return ($resArray);
}//end function

//function for execute query
function QueryResult($sql,$PVal)
{
    if($sql!=NULL)
    {
        //$rs=mysql_query($sql, $this->dblink) or die(mysql_error().':'.$PVal);
        $rs=mysql_query($sql);
        if(!$rs)
        {
            return $this->MysqlError($PVal);
        }//end if
        else
        { 
            return $rs;
        }//end else
    }//end if
    else
    {
        return '<b>MySQL Error</b>: Empty Query!';
    }//end else
}//end function

//function for print error msg
function MysqlError($eVal)
{
    if(mysql_error()!= '')
    {
            echo mysql_error().$eVal.;
    }//end if
}//end funciton 

用法:

$cond="condition";
$pass_select=$objA->select_rows(TABLEPREFIX.'tablename','fields',$cond);

答案 1 :(得分:0)

添加到对象:

protected $results;

在queryAction函数中将行更改为:

$this->results = mysqli_query($this->connectAction(),$sql);

而不是:

foreach ($execute->results as $result){}

答案 2 :(得分:0)

试试这个:

public function connectAction()
{
    if(!$this->con)
    {
        $this->con = mysqli_connect($this->host, $this->user, $this->pass, $this->db) or die('Cannot Connect to DB');
    }

    return $this->con;
}