从PHP函数返回多个值
为重复的问题道歉。使用函数从数据库返回多个值。我尝试执行代码,函数返回一个值,其中我需要id和name的所有值 数据库:id和name有9行。我的代码中有什么遗漏的吗从PHP函数返回多个值,php,Php,为重复的问题道歉。使用函数从数据库返回多个值。我尝试执行代码,函数返回一个值,其中我需要id和name的所有值 数据库:id和name有9行。我的代码中有什么遗漏的吗 function readdata() { $sth = $db->execute('SELECT * FROM mynumbers m WHERE m.id>1 ORDER BY m.id ASC'); foreach ($sth as $s) { $object = new stdC
function readdata() {
$sth = $db->execute('SELECT * FROM mynumbers m WHERE m.id>1 ORDER BY m.id ASC');
foreach ($sth as $s) {
$object = new stdClass();
$object->id = $s->id;
$object->name = $s->name;
return $object;
}
}
$rd = readdata();
echo $rd->id;
echo $rd->name;
您的foreach循环打算遍历数组$sth的所有值,但只返回第一个值 您可以返回$sth以获取整个数组,也可以构建一个新数组并附加到其中:
$ret = array();
foreach ($sth as $s) {
...
$ret[] = $object;
}
然后
返回$ret 您的foreach循环打算遍历数组$sth的所有值,但只返回第一个值 您可以返回$sth以获取整个数组,也可以构建一个新数组并附加到其中:
$ret = array();
foreach ($sth as $s) {
...
$ret[] = $object;
}
然后
返回$ret 可能是这样的:
function readdata() {
$sth = $db->execute('SELECT * FROM mynumbers m WHERE m.id>1 ORDER BY m.id ASC');
$out = [];
foreach ($sth as $s) {
$object = new stdClass();
$object->id = $s->id;
$object->name = $s->name;
$out[] = $object;
}
return $out;
}
$rd = readdata();
//and here
foreach($rd as $obj){
echo $obj->id;
echo $obj->name;
}
可能是这样的:
function readdata() {
$sth = $db->execute('SELECT * FROM mynumbers m WHERE m.id>1 ORDER BY m.id ASC');
$out = [];
foreach ($sth as $s) {
$object = new stdClass();
$object->id = $s->id;
$object->name = $s->name;
$out[] = $object;
}
return $out;
}
$rd = readdata();
//and here
foreach($rd as $obj){
echo $obj->id;
echo $obj->name;
}
这与其说是答案,不如说是建议。为什么要重新发明轮子?PDO已经能够返回类并将所有结果提取到数组中 函数readdataPDO$db:array { $sth=$db->prepare'SELECT*FROM mynumbers m其中m.id>1 ORDER BY m.id ASC'; $sth->execute; return$sth->fetchAllPDO::FETCH_类; } $objects=readdata$db; $objects现在是一个数组。每个元素都包含一个stdClass对象,每个列名都作为属性 foreach$objects作为$object{ echo$object->id,PHP\u EOL; echo$object->name,PHP\u EOL; }
这与其说是答案,不如说是建议。为什么要重新发明轮子?PDO已经能够返回类并将所有结果提取到数组中 函数readdataPDO$db:array { $sth=$db->prepare'SELECT*FROM mynumbers m其中m.id>1 ORDER BY m.id ASC'; $sth->execute; return$sth->fetchAllPDO::FETCH_类; } $objects=readdata$db; $objects现在是一个数组。每个元素都包含一个stdClass对象,每个列名都作为属性 foreach$objects作为$object{ echo$object->id,PHP\u EOL; echo$object->name,PHP\u EOL; }
你应该看看这个:你应该看看这个: