无法在html页面中显示表记录

时间:2014-12-08 22:18:13

标签: html class oop pdo record

我正在尝试将表中的记录调用到html中以创建管理页面,以便可以更新内容。我无法得到记录。我是全新的,所以任何帮助都表示赞赏。我的表名是tblContent,我的数据库名是data1。表格中只有一行,PageID为1。

home.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo mysql_result($rs,0,”PageTitle”);?></title>
<link rel="stylesheet" type="text/css" href="origstyle.css">
</head>

<body>
<div id="container">
<h1>Site Heading</h1>

<?php

require_once 'classes.php';

try {
$conn = new PDO("mysql:host=$host;db_name=$db_name", $db_username, $db_password);
$rs = mysql_query("getData");
echo mysql_result($rs,0,”Content”);
} catch (PDOException $pe) {
die("Could not connect to the database $db_name :" . $pe->getMessage());
}



?>
</div>
</body>
</html>

classes.php

<?php 

//Enter your database connection details here.
$host = 'localhost'; //HOST NAME.
$db_name = 'XXXXdbName'; //Database Name
$db_username = 'XXXXuserName'; //Database Username
$db_password = 'XXXXpass'; //Database Password

try
{
$pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
}
catch (PDOException $e)
{
exit('Error Connecting To DataBase');
}


class database
{
function __construct($pdo)
{
$this->pdo = $pdo;
}

function getData()
{
$query = $this->pdo->prepare('SELECT * FROM data1');
$query->execute();
return $query->fetchAll();
}

}

?>

1 个答案:

答案 0 :(得分:0)

有很多小问题阻止了这段代码的运行。

最大的问题是您正在尝试使用两个不同的数据库库。有一个已弃用的mysql库,其中所有函数都以mysql_开头,然后是PDO。将所有mysql函数替换为PDO对应函数。

我接下来要注意的是,您似乎在考虑将方法名称传递给查询函数(mysql_query"myData"),但事实并非如此。您可以在类的实例上调用该方法。首先,您创建一个实例,就像您为PDO对象所做的那样,然后调用方法。

$database = new database()
$rs = $database->getData()

我注意到的第三件事是你正在创建两次PDO对象。没有必要在home.php中创建实例,所以只需摆脱它(以及与之相关的try / catch内容)。

第四件事是轻微的。您还应该将您的班级名称大写。

把这些放在一起,你得到这样的东西:

home.php:

require_once "classes.php";
$rs = $database->getData();
// Code that turns $rs into HTML
// Sorry, I don't know PDO well enough to
// say what that is.
// I do know that a simple echo will not suffice.

classes.php:

$host = "localhost"
$db_name = "";
$db_username = "";
$db_password = "";

class Database {
    function __construct($pdo) {
        $this->pdo = $pdo;
    }

    function getData () {
        $query = $this->pdo->prepare('SELECT * FROM data1');
        $query->execute();
        return $query->fetchAll();
    }
}

try {
    $pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
} catch (PDOException e) {
    exit('Error Connecting To DataBase');
}

$database = new Database($pdo);