Php 使用PDO从MySQL获取并循环数据
我想遍历数据库中的所有行,并将它们显示给用户,但我只得到输出中的第一行 这是我的密码: 查询功能: 我的问题是:Php 使用PDO从MySQL获取并循环数据,php,mysql,pdo,Php,Mysql,Pdo,我想遍历数据库中的所有行,并将它们显示给用户,但我只得到输出中的第一行 这是我的密码: 查询功能: 我的问题是: 问题是——即使数据库中还有更多的其他行,我也只能得到第一行。你知道为什么会这样吗?你漏掉了下划线 在查询函数中,您将输出存储在$this->\u结果中。在循环之前,您需要更正变量名$搜索->\u结果 使用PDO方法,执行&fetchAll或fetch。请注意,我调用了我的方法findAll,以免将其与PDOSfetchall混淆。以下代码基于我的用法 课堂上 不管结果如何 publi
问题是——即使数据库中还有更多的其他行,我也只能得到第一行。你知道为什么会这样吗?你漏掉了下划线 在查询函数中,您将输出存储在$this->\u结果中。在循环之前,您需要更正变量名$搜索->\u结果 使用PDO方法,执行&fetchAll或fetch。请注意,我调用了我的方法findAll,以免将其与PDOSfetchall混淆。以下代码基于我的用法 课堂上 不管结果如何
public function findAll($sql,$param) {
$query = $this->dbh->prepare($sql);
if(is_array($param)){
$query->execute($param);//1 parameter
}else {
$query->execute(array($param));// >1 parameters
}
$rows = $query->fetchAll();
if($rows){
return $rows;
}
}
}
一个结果是
public function findOne($sql,$param) {
$query = $this->dbh->prepare($sql);
if(is_array($param)){
$query->execute($param);//1 parameter
}else {
$query->execute(array($param));// >1 parameters
}
$row = $query->fetch();
if($row){
return $row;
}
}
}
用法
如果你只想找到一条记录,你可以在一个新方法中将fetchAll替换为fetch,只需在没有foreach的情况下进行echo即可奇怪的是,你居然能从中得到一行!我不知道这里有什么不对……有什么想法吗?&公共函数查询&对多个查询的查询???我没有理解你…请看我的代码没有混淆的方法名称。我尝试过这种方法…但我仍然得到一条记录。。。。但是当我将$sql更改为SELECT*FROM users时;我获得所有结果您的查询必须只有一个结果。对于我的数据库的结果。这是我想要的…但我不知道我刚刚得到第一行…我能看看你的数据库类吗???编辑了一个结果的答案。
public function findAll($sql,$param) {
$query = $this->dbh->prepare($sql);
if(is_array($param)){
$query->execute($param);//1 parameter
}else {
$query->execute(array($param));// >1 parameters
}
$rows = $query->fetchAll();
if($rows){
return $rows;
}
}
}
public function findOne($sql,$param) {
$query = $this->dbh->prepare($sql);
if(is_array($param)){
$query->execute($param);//1 parameter
}else {
$query->execute(array($param));// >1 parameters
}
$row = $query->fetch();
if($row){
return $row;
}
}
}
$params=array(100,"AK");
$sql1 = "SELECT * FROM users WHERE id < ? AND state = ?";
$rows = $dao->findAll($sql,$params);
foreach($rows as $row){//Remove for 1 result
echo $row['firstname'];
etc.....