好吧,这应该很简单。
我有一个表,其中包含3个不同文本框的内容。类中的方法应该将内容插入到文本框中。
应输入内容的示例文本框(文本区域)。
我的方法
public function LoadBoxes(){
$db = DB::getInstance();
$sql = "SELECT * FROM beta_letsgocontent";
$stmnt = $db->prepare($sql);
$stmnt->execute();
$boxes = $stmnt->fetchAll();
foreach ($boxes as $box) {
$data[] = array('Low' => $box['boxLow'],
'Medium' => $box['BoxMedium'],
'High' => $box['BoxHigh']);
}
return $data;
}//function
这是我的表(下图),所以表中的数据/内容应该插入到文本框中。
因此,当我在content.php上执行测试时,我调用类方法如下:
require_once('../classes/class.content.php');
$boxes = new Contents();
$boxes->LoadBoxes();
var_dump($boxes);
我得到了以下信息:
问题
可以看到,返回的是数组键,但是数据库中的数据与数组键不匹配,或者返回的是方法…我被难住了,不知道我在这里做错了什么?
有什么我做错的建议吗?可能是我没有正确连接到数据库吗?
不过,如果是数据库连接错误,我相信我会收到一个错误
请记住我是一个还在学习的学生。
更新
连接架构
class Db {
private static $instance = NULL;
private function __construct() {}
private function __clone() {}
public static function getInstance() {
if (!isset(self::$instance)) {
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
self::$instance = new PDO('mysql:host=localhost;dbname=beta', 'root', '', $pdo_options);
}
return self::$instance;
}
}
更新2
我刚刚在test.php页面上执行了以下操作,返回了正确的结果。
require('connection.php');
function LoadBoxes(){
$db = DB::getInstance();
$sql = "SELECT * FROM beta_letsgocontent";
$stmnt = $db->prepare($sql);
$stmnt->execute();
$boxes = $stmnt->fetchAll();
foreach ($boxes as $box) {
$box[] = array('Low' => $box['BoxLow'],
'Medium' => $box['BoxMedium'],
'High' => $box['BoxHigh']);
}
return $box;
}//function
print_r(LoadBoxes());
?>
最佳答案
(二)首要问题;
您正在从类返回$data,但没有用返回的数组填充变量。
您正在转储对象本身。
这应该管用;
require_once('../classes/class.content.php');
$boxes = new Contents();
$data = $boxes->LoadBoxes();
var_dump($data);