我是 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();
}
你正在select()
里面做一个$this->Fetch();
。我假设这获取了结果集的一行。然后,您执行后续$execute->Fetch()
以实际获得所需的结果。
如果没有 WHERE
子句,可能会有多个行。第一个结果行被消耗并被select()
内部的Fetch()
进入以太。然后检索第二行并显示它。
对于 WHERE
子句,只有一行被消耗到以太中,然后就没有实际的行可供获取和显示。