where子句变量出现故障

时间:2016-03-10 07:48:04

标签: php mysqli

我是oop环境的新手,有些东西似乎不在这里,我已经搜遍了所有可用的,但是在课堂内给出了查询字符串。

if(isset($_POST['search'])){
    include('../Classes/class.config.php');
    include('../Classes/class.dbActions.php');
    $execute=new execute();
    $execute->select('SELECT * FROM users where username="'.$_POST['search'].'" ');
    $array=$execute->Fetch();
    echo $array['chasisNo'].'<br/>';
}

当我改变时:

$execute->select('SELECT * FROM users where username="'.$_POST['search'].'" ');

到这个

$execute->select('SELECT * FROM users '); 

通过列出顶部
来完美地工作 现在这个代码有什么问题,即使我传递了一个像

这样的字符串
$execute->select('SELECT * FROM users where username="oketch" ');

它不起作用

这是执行类

class execute extends db
{
    private $sqlString;
    private $selected;
    private $querySelected;
    public function select($sqlString)
    {
        $connection=$this->getConnection();
        $this->querySelected=$connection->query($sqlString);
        if($this->querySelected->num_rows>0) {
            $this->Fetch();
        }
        else {
            echo'No Data Available';
        }   
    }   

    public function Fetch() {
        return $this->querySelected->fetch_array();
    }

1 个答案:

答案 0 :(得分:2)

你在$this->Fetch();内进行select()。我假设这会获取结果集的一行。然后,您可以执行后续的$execute->Fetch()来实际获得您正在寻找的结果。

如果没有WHERE子句,可能会有多行。第一个结果行被消耗并由Fetch()内的select()进入以太。然后检索第二个行并显示它 使用WHERE子句,只有一行被消耗到以太中,然后没有实际的行可以获取和显示。